题目

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/

最新文章

  1. Java实现压缩与解压缩
  2. Window Server 2012 R2 下 IE11 浏览器 无法安装Flash 怎么解决
  3. Redis 队列操作
  4. [NOIP2015]运输计划 D2 T3 LCA+二分答案+差分数组
  5. java获取服务器所有信息
  6. 边工作边刷题:70天一遍leetcode: day 85-4
  7. configure: error: Please reinstall the libcurl distribution
  8. HTML: 用表格畫出課程表
  9. hdu 1542 Atlantis
  10. objective-c自学总结(一)---面向对象
  11. 现代程序设计——homework-06
  12. 十六进制转十进制 - C
  13. Scala中的Extractor
  14. bzoj2893
  15. jquery判断元素是否隐藏的多种方法
  16. java String不可变对象,但StringBuffer是可变对象
  17. 高性能日志类KLog(已开源代码)
  18. JavaScript之深入理解【函数】
  19. Django中使用geetest实现滑动验证
  20. sprinbcloud学习之-Failed to bind properties under 'logging.level' to java.util.Map<java.lang.String>

热门文章

  1. BZOJ3459 : Bomb
  2. BZOJ2924 : [Poi1998]Flat broken lines
  3. 8、Redis中sort命令详解
  4. pat advanced 1139. First Contact (30)
  5. spring data jpa在使用PostgreSQL表名大小写的问题解决
  6. Ubuntu 16.04实现SSH无密码登录/免密登录/自动登录(ssh-keygen/ssh-copy-id)
  7. IAR EWARM 关闭纯汇编函数的警告的方法
  8. OOP设计模式[JAVA]——04命令模式
  9. Win32动态链接库和MFC 动态链接库
  10. 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容