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); 
        } 
    }; 
    
  • 相关阅读:
    mysql案例 ~ 监控以及如何避免从库延迟问题
    mysql基础~开发规范
    k8s系列~mgr的应用
    k8s系列~docker mysql
    常用知识点(一)
    Windows下查看进程状态/信息
    Lua入门(一)
    Lua简介
    .NET&C#的异常处理
    数据库中的锁
  • 原文地址:https://www.cnblogs.com/tgkx1054/p/3080963.html
Copyright © 2011-2022 走看看