Convert Sorted List to Binary Search Tree leetcode java
2024-08-31 09:16:38
题目:
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
题解:
之前做过一道是从sorted array转换到BinarySearchTree的,方法还是一样二分法。但是构造树的方法不是由顶至下了,是要由低至上的建立。
代码如下:
1 static ListNode h;
2
3 public TreeNode sortedListToBST(ListNode head) {
4 if (head == null)
5 return null;
6
7 h = head;
8
9 int len = 0;
ListNode temp = head;
while(temp != null){
len++;
temp = temp.next;
}
return sortedListToBST(0, len - 1);
}
public TreeNode sortedListToBST(int start, int end) {
if (start > end)
return null;
int mid = (start + end) / 2;
TreeNode left = sortedListToBST(start, mid - 1);
TreeNode root = new TreeNode(h.val);
root.left = left;
h = h.next;
TreeNode right = sortedListToBST(mid + 1, end);
root.right = right;
return root;
}
Reference: http://www.programcreek.com/2013/01/leetcode-convert-sorted-list-to-binary-search-tree-java/
最新文章
- Java实现压缩与解压缩
- Window Server 2012 R2 下 IE11 浏览器 无法安装Flash 怎么解决
- Redis 队列操作
- [NOIP2015]运输计划 D2 T3 LCA+二分答案+差分数组
- java获取服务器所有信息
- 边工作边刷题:70天一遍leetcode: day 85-4
- configure: error: Please reinstall the libcurl distribution
- HTML: 用表格畫出課程表
- hdu 1542 Atlantis
- objective-c自学总结(一)---面向对象
- 现代程序设计——homework-06
- 十六进制转十进制 - C
- Scala中的Extractor
- bzoj2893
- jquery判断元素是否隐藏的多种方法
- java String不可变对象,但StringBuffer是可变对象
- 高性能日志类KLog(已开源代码)
- JavaScript之深入理解【函数】
- Django中使用geetest实现滑动验证
- sprinbcloud学习之-Failed to bind properties under &#39;logging.level&#39; to java.util.Map<;java.lang.String>;
热门文章
- BZOJ3459 : Bomb
- BZOJ2924 : [Poi1998]Flat broken lines
- 8、Redis中sort命令详解
- pat advanced 1139. First Contact (30)
- spring data jpa在使用PostgreSQL表名大小写的问题解决
- Ubuntu 16.04实现SSH无密码登录/免密登录/自动登录(ssh-keygen/ssh-copy-id)
- IAR EWARM 关闭纯汇编函数的警告的方法
- OOP设计模式[JAVA]——04命令模式
- Win32动态链接库和MFC 动态链接库
- 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容