Convert Sorted List to Binary Search Tree
来源:互联网 发布:ubuntu怎么打开输入法 编辑:程序博客网 时间:2024/05/04 23:38
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
由于已经有序,所以利用二分法创建这棵平衡二叉树,与Sort List类似
需要注意的就是一条链的后半条链的索引范围是[0,high - mid - 1],原来一直纠结在high - mid;
其次,就是注意后半条链的链头。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; next = null; } * } *//** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public TreeNode sortedListToBST(ListNode head) { int len = 0; ListNode p = head; while(p != null){ len++; p = p.next; } return create(head,0,len - 1); } public TreeNode create(ListNode head, int low , int high){ if(low > high ){ return null; } int mid = (low + high) >> 1; int count = 0; ListNode p = head; while(count < mid){ p = p.next; count++; } TreeNode t = new TreeNode(p.val); t.left = create(head,0,mid-1); t.right = create(p.next,0,high - mid - 1); return t; }}
Runtime: 281 ms
0 0
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- convert sorted list to binary search tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Convert Sorted List to Binary Search Tree
- Java把字符串转Unicode
- 《我的2014》一杯浊酒诉离愁,仰望灯火似兰舟
- C# 枚举操作工具类
- [APIO2012]派遣 解题报告
- rar文件Quartz开发指南
- Convert Sorted List to Binary Search Tree
- redis-cluster研究和使用
- 反射入门小结
- Services
- android:在一个应用中创建其它应用的快捷启动方式Launcher
- 如何开发Web应用程序
- windows应用程序开发笔记一:windows应用程序介绍
- 汇编语言子函数——128位的加法运算
- poj1062 最短路(加限制)