zoukankan      html  css  js  c++  java
  • 二叉树重建leetcode

    1.前序中序确定

    class Solution {
    public:
        TreeNode *buildTree(vector<int> &preorder, vector<int> &inorder)
        {
            if(preorder.size()==0||inorder.size()==0||preorder.size()!=inorder.size())return NULL;
            TreeNode *root=NULL;
            build(root,preorder,inorder,0,preorder.size()-1,0,inorder.size()-1); 
            return root;
        }
        void build(TreeNode *&root,vector<int> &preorder, vector<int> &inorder,int p1,int p2,int i1,int i2)
        {
            root=new TreeNode(preorder[p1]);
            int j;
            for(j=i1;j<=i2;j++)
            {
                if(inorder[j]==preorder[p1])break;
            }
            if(j!=i1)
            build(root->left,preorder,inorder,p1+1,p1+j-i1,i1,j-1);
            if(j!=i2)
            build(root->right,preorder,inorder,p1+(j-i1)+1,p2,j+1,i2);
        }
    };
    

    2.中序和后序确定

    class Solution {
    public:
        TreeNode *buildTree(vector<int> &inorder, vector<int> &postorder) 
        {
            if(postorder.size()==0||inorder.size()==0||inorder.size()!=postorder.size())return NULL; 
            TreeNode *root=NULL; 
            build(root,inorder,postorder,0,inorder.size()-1,0,postorder.size()-1);  
            return root;
        }
        void build(TreeNode *&root,vector<int> &inorder, vector<int> &postorder,int i1,int i2,int p1,int p2) 
        { 
            root=new TreeNode(postorder[p2]); 
            int j; 
            for(j=i1;j<=i2;j++) 
            { 
                if(inorder[j]==postorder[p2])break; 
            } 
            if(j!=i1) 
            build(root->left,inorder,postorder,i1,j-1,p1,p1+j-1-i1); 
            if(j!=i2) 
            build(root->right,inorder,postorder,j+1,i2,p1+j-i1,p2-1); 
        } 
    }; 
    
  • 相关阅读:
    windows域相关
    IDEA 找不到maven编译命令操作
    Idea Cannot import to svn: Cannot run program "svn"
    NodeJS在CentOs7下安装
    NodeJS 安装不存在的模块
    NodeJS淘宝 CNPM 镜像
    Intellij Idea 使用入门教程
    Java中基本类型占用字节数
    JWT—JSON Web Token
    2016年度最受欢迎中国开源软件
  • 原文地址:https://www.cnblogs.com/tgkx1054/p/3080963.html
Copyright © 2011-2022 走看看