排序列表转换为二分查找树
2017-06-01 13:28
411 查看
public class Solution { /**weizuo * @param head: The first node of linked list. * @return: a tree node * 排序列表转换为二分查找树 * 给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树 */ private ListNode current; private int getListLength(ListNode head) { int size = 0; while (head != null) { size++; head = head.next; } return size; } public TreeNode sortedListToBST(ListNode head) { int size; current = head; size = getListLength(head); return sortedListToBSTHelper(size); } public TreeNode sortedListToBSTHelper(int size) { if (size <= 0) { return null; } TreeNode left = sortedListToBSTHelper(size / 2); TreeNode root = new TreeNode(current.val); current = current.next; TreeNode right = sortedListToBSTHelper(size - 1 - size / 2); root.left = left; root.right = right; return root; } }
相关文章推荐
- lintcode-排序列表转换为二分查找树-106
- lintcode,排序列表转换为二分查找树
- 题目:排序列表转换为二分查找树
- LINTCODE---排序列表转换为二分查找树
- 排序列表转换为二分查找树
- 排序列表转换为二分查找树-LintCode
- LintCode 排序列表转换为二分查找树
- 排序列表转换为二分查找树
- LintCode:排序列表转换为二分查找树
- 排序列表转换为二分查找树
- LintCode-排序列表转换为二分查找树分析及实例
- LintCode 106-排序列表转换为二分查找树
- 排序列表转换为二分查找树
- lintcode——排序列表转换为二分查找树(链表,二叉排序树)
- LintCode-排序列表转换为二分查找树
- lintcode-106-排序列表转换为二分查找树
- 排序列表转化为二分查找树
- lintcode- 题106 排序链表转换为二分查找树
- 游戏后台里的通用技术之二分查找和排序
- 列表--- 查找元素二分查找