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; }