Advertisement
sweet1cris

Untitled

Jan 9th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.85 KB | None | 0 0
  1. public class Solution {
  2.     private ListNode current;
  3.  
  4.     private int getListLength(ListNode head) {
  5.         int size = 0;
  6.  
  7.         while (head != null) {
  8.             size++;
  9.             head = head.next;
  10.         }
  11.  
  12.         return size;
  13.     }
  14.  
  15.     public TreeNode sortedListToBST(ListNode head) {
  16.         int size;
  17.  
  18.         current = head;
  19.         size = getListLength(head);
  20.  
  21.         return sortedListToBSTHelper(size);
  22.     }
  23.  
  24.     public TreeNode sortedListToBSTHelper(int size) {
  25.         if (size <= 0) {
  26.             return null;
  27.         }
  28.  
  29.         TreeNode left = sortedListToBSTHelper(size / 2);
  30.         TreeNode root = new TreeNode(current.val);
  31.         current = current.next;
  32.         TreeNode right = sortedListToBSTHelper(size - 1 - size / 2);
  33.  
  34.         root.left = left;
  35.         root.right = right;
  36.  
  37.         return root;
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement