zoukankan      html  css  js  c++  java
  • Convert Sorted List to Binary Search Tree leetcode java

    题目

    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;
    10         ListNode temp = head;
    11         while(temp != null){
    12             len++;
    13             temp = temp.next;
    14         }   
    15         return sortedListToBST(0, len - 1);
    16     }
    17  
    18     public TreeNode sortedListToBST(int start, int end) {
    19         if (start > end)
    20             return null;
    21         int mid = (start + end) / 2;
    22         TreeNode left = sortedListToBST(start, mid - 1);
    23         TreeNode root = new TreeNode(h.val);
    24         root.left = left;
    25         h = h.next;
    26         TreeNode right = sortedListToBST(mid + 1, end);
    27         root.right = right;
    28  
    29         return root;
    30     }

    Reference: http://www.programcreek.com/2013/01/leetcode-convert-sorted-list-to-binary-search-tree-java/

  • 相关阅读:
    解决VS在查找预编译头使用时跳过
    Very Sleepy使用图文教程
    将Excel数据导入到ArcGIS属性表
    2016工作计划
    免费GIS数据下载网站推荐
    WIN7 (64 位)安装AutoCAD2012失败解决方法
    .resources文件转.resx 文件
    同一Session中的aspx页面的并发限制
    Diving Into Lync Client Logins
    Passing JavaScript Objects to Managed Code
  • 原文地址:https://www.cnblogs.com/springfor/p/3884031.html
Copyright © 2011-2022 走看看