zoukankan      html  css  js  c++  java
  • Convert sorted array into binary search tree

    一开始用的第一种解法,但是大测试内存超了,所以不能迭代的时候不能每次返回一个TreeNode,而是需要建立一个引用,每一次修改引用可以节省空间。时间复杂度来说都是一样的。

    class Solution {
    public:
    
        TreeNode *build(vector<int> num, int start, int end){
            
            if (start > end) return NULL;
            
            int mid = (start + end) / 2;
            TreeNode *tmpRoot = new TreeNode(num[mid]);
            tmpRoot->left = build(num, start, mid-1);
            tmpRoot->right = build(num, mid+1, end);
            return tmpRoot;
        }
        
        TreeNode *sortedArrayToBST(vector<int> &num) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
             if (num.size() == 0) return NULL;
             
             int start = 0;
             int end = num.size()-1;
             return build(num,start,end);
        }
    };
    
    
    
    class Solution {  
    public:  
        void buildTree(vector<int> &num, int start, int end, TreeNode* &tmpRoot)  
        {  
            if (start > end) return;  
              
            int mid = (start+end)/2;  
            tmpRoot = new TreeNode(num[mid]);  
            buildTree(num, start, mid-1, tmpRoot->left);  
            buildTree(num, mid+1, end, tmpRoot->right);  
              
        }  
          
        TreeNode *sortedArrayToBST(vector<int> &num) {  
            // Start typing your C/C++ solution below  
            // DO NOT write int main() function  
            TreeNode* root = NULL;  
            int start = 0;
            int end = num.size() - 1;
            buildTree(num, start, end, root);  
            return root;  
        }  
    };
    

      

  • 相关阅读:
    论 IntStream 和 for 循环的速度
    单链线性表的基本操作--创建,插入,删除,查看,打印
    Android中的异步处理方式
    Kotlin 集合变换与序列
    Kotlin Lazy延迟初始化
    协程及Kotlin协程
    Java 注解
    Android 事件传递机制进阶
    Java 异常
    Java 多线程及线程间通信(Synchronized和Volatile关键字)
  • 原文地址:https://www.cnblogs.com/tanghulu321/p/3021379.html
Copyright © 2011-2022 走看看