首页 > 代码库 > [leetcode]Convert Sorted List to Binary Search Tree
[leetcode]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.
基本思路:
可以用二分的思想进行递归求解。
代码:
public TreeNode subSortedToBST(Vector<Integer> vec, int begin ,int end) //Java { if(begin == end) { TreeNode node = new TreeNode(vec.get(begin)); return node; } int mid = (begin + end)/2; TreeNode node = new TreeNode(vec.get(mid)); if(mid != begin) { TreeNode left = subSortedToBST(vec,begin,mid-1); node.left = left; } if(mid != end) { TreeNode right = subSortedToBST(vec,mid+1,end); node.right = right; } return node; } public TreeNode sortedListToBST(ListNode head) { if(head == null) return null; Vector<Integer> array = new Vector<Integer>() ; while(head != null) { array.add(head.val); head = head.next; } TreeNode result = subSortedToBST(array,0,array.size()-1); return result; }
[leetcode]Convert Sorted List to Binary Search Tree
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。