Java for LeetCode 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.

解题思路:

同上题,JAVA实现如下:

    public TreeNode sortedListToBST(ListNode head) {
        ArrayList<Integer> list=new ArrayList<Integer>();
        while(head!=null){
        	list.add(head.val);
        	head=head.next;
        }
        return sortedListToBST(list,0,list.size()-1);
    }
	static public TreeNode sortedListToBST(ArrayList<Integer> list, int begin, int end) {
		if (begin>end)
			return null;
		TreeNode root = new TreeNode(list.get((begin+end) / 2));
		root.left=sortedListToBST(list,begin,(begin+end) / 2-1);
		root.right=sortedListToBST(list,(begin+end) / 2+1,end);
		return root;
	}

 

posted @ 2015-05-23 19:47  TonyLuis  阅读(201)  评论(0编辑  收藏  举报