• 109. Convert Sorted List to Binary Search Tree


    Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
    从给定的有序链表生成平衡二叉树。
    解题思路:最容易想到的就是利用数组生成二叉树的方法,找到中间节点作为二叉树的root节点,然后分别对左右链表递归调用分别生成左子树和右子树。时间复杂度O(N*lgN)

     1 public class Solution {
     2 
     3     public TreeNode sortedListToBST(ListNode head) {
     4         return toBST(head,null);
     5     }
     6     private TreeNode toBST(ListNode head ,ListNode tail){
     7         if(head == tail) return null;
     8         ListNode slow = head;
     9         ListNode fast = head;
    10         while(fast.next!=tail&& fast.next.next != tail) {
    11             fast = fast.next.next;
    12             slow = slow.next;
    13         }
    14         TreeNode root = new TreeNode(slow.val);
    15         root.left = toBST(head,slow);
    16         root.right = toBST(slow.next,tail);
    17         
    18         return root;
    19     }
    20 
    21 }

     空间为O(1)时间为O(n):

    TreeNode *sortedListToBST(ListNode *head)  
    {  
        int len = 0;  
           ListNode * node = head;  
           while (node != NULL)  
           {  
               node = node->next;  
               len++;  
           }  
           return buildTree(head, 0, len-1);  
       }  
         
       TreeNode *buildTree(ListNode *&node, int start, int end)  
       {  
           if (start > end) return NULL;  
           int mid = start + (end - start)/2;  
           TreeNode *left = buildTree(node, start, mid-1);  
           TreeNode *root = new TreeNode(node->val);  
           root->left = left;  
           node = node->next;  
           root->right = buildTree(node, mid+1, end);  
           return root;  
       }  

    参考:

    http://blog.csdn.net/salutlu/article/details/24502109

    http://blog.csdn.net/worldwindjp/article/details/39722643

    https://www.nowcoder.com/questionTerminal/86343165c18a4069ab0ab30c32b1afd0

  • 相关阅读:
    Spring AOP总结(三)
    Spring AOP源码解析(二)
    java9新特性
    BeanFactory和ApplicationContext的区别总结
    Elasticsearch7.X为什么移除类型(type)
    elasticsearch性能优化(二)
    elasticsearch性能优化(一)
    elasticsearch的master选举机制
    自动化构建和部署应用系统平台
    关系型数据库之mysql-01
  • 原文地址:https://www.cnblogs.com/zle1992/p/7696082.html
Copyright © 2020-2023  润新知