• 先序遍历和后序遍历构建二叉树


    递归的方法利用先序遍历和中序遍历构建二叉树,同样也可以利用到中序遍历和后序遍历构建二叉树。

    //利用先序遍历和中序遍历构建二叉树
    TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {
        TreeNode *root=NULL;
        if(preorder.size()==0||inorder.size()==0||preorder.size()!=inorder.size())
            return root;
        root=tree(preorder,0,preorder.size()-1,inorder,0,inorder.size()-1); 
        return root;
    } 
    TreeNode* tree(vector<int>&preorder,int preBegin,int preEnd,vector<int>&inorder,int inBegin,int inEnd){
        TreeNode *root=NULL;
        if(preorder.size()==0||inorder.size()==0||preorder.size()!=inorder.size())
            return root;
        TreeNode *leftNode=NULL;
        TreeNode *rightNode=NULL;
        root->val=preorder[preBegin];
        int rootVal=root->val;
        int i;
    for(i=inBegin;i<=inEnd;i++)
        if(inorder[i]==root->val)
                break;
        if(i>inEnd)
            return root;
        int leftLen=i-inBegin;
        int rightLen=inEnd-i-1;
        leftNode=buildTree(preorder,preBegin+1,preBegin+leftLen,inorder,inBegin,inBegin+leftLen);
        rightNode=buildTree(preorder,preBegin+1+leftLen,preEnd,inorder,i+1,i+rightLen);
        root->left=leftNode;
        root->right=rightNode;
        return root;
    }
  • 相关阅读:
    php 图片剪切
    mysql 官方docker镜像使用教程
    centos7 取消自动锁屏
    nginx配置反向代理示例
    nginx 官方docker镜像使用教程
    centos 下nginx源码编译安装
    nginx rewrite规则实例讲解
    requests.session()会话保持
    我对网络IO的理解
    日常运维--rsync同步工具
  • 原文地址:https://www.cnblogs.com/healthylife/p/5869787.html
Copyright © 2020-2023  润新知