leetcode--109. Convert Sorted List to Binary Search Tree

来源:互联网 发布:unity3d 粒子系统 编辑:程序博客网 时间:2024/06/07 15:43

109. Convert Sorted List to Binary Search Tree

 

Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.

//o(n)
public class Solution {
    private ListNode node;
    public TreeNode sortedListToBST(ListNode head) {
    if(head == null){
    return null;
    }
    int size = 0;
    ListNode runner = head;
    node = head;
    while(runner != null){
    runner = runner.next;
    size ++;
    }
    return inorderHelper(0, size - 1);
    }
    public TreeNode inorderHelper(int start, int end){
    if(start > end){
    return null;
    }
    int mid = start + (end - start) / 2;
    TreeNode left = inorderHelper(start, mid - 1);
   
    TreeNode root = new TreeNode(node.val);
    root.left = left;
    node = node.next;
   
    TreeNode right = inorderHelper(mid + 1, end);
    root.right = right;
    return root;
    }
}

0 0
原创粉丝点击