• leetcode第一刷_Construct Binary Tree from Preorder and Inorder Traversal


    构造方式跟中序与后序全然一样,并且一般都习惯正着来,所以更简单。

    代码是之前写的,没实用库函数,不应该。

    TreeNode *buildIt(vector<int> &preorder, int start1, vector<int> &inorder, int start2, int len){
        if(len <= 0)
            return NULL;
        TreeNode *root = new TreeNode(preorder[start1]);
        int i = start2;
        for(;i<start2+len&&inorder[i] != preorder[start1];i++);
        int len2 = i-start2;
        root->left = buildIt(preorder, start1+1, inorder, start2, len2);
        root->right = buildIt(preorder, start1+1+len2, inorder, i+1, len-len2-1);
        return root;
    }
    
    class Solution {
    public:
        TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder) {
            if(preorder.size()<=0 || inorder.size()<=0)
                return NULL;
            return buildIt(preorder, 0, inorder, 0, preorder.size());
        }
    };


  • 相关阅读:
    Java 泛型
    Github
    软件工程----前端
    前端全局缓存的三种方式
    关于IDE的选择
    模拟placeholder
    小程序request封装
    小程序实现大转盘抽奖----踩坑之路
    关于this的理解
    小程序背景图片bug
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/3831374.html
Copyright © 2020-2023  润新知