您的位置:首页 > 其它

Convert Sorted List to Binary Search Tree

2014-11-13 04:56 260 查看
Inorder逆向思维,bottom-up

//inorder
public class Solution {
ListNode list;
public TreeNode sortedListToBST(ListNode head) {
int len = 0;
ListNode node = head;
while (node != null) {
len++;
node = node.next;
}
list = head;
return helper(0, len - 1);
}

public TreeNode helper(int start, int end) {
if (start > end) {
return null;
}
int mid = (start + end) / 2;
TreeNode left = helper(start, mid - 1);
TreeNode root = new TreeNode(list.val);
root.left = left;
list = list.next;
root.right = helper(mid+1, end);;
return root;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: