zoukankan      html  css  js  c++  java
  • Leetcode Construct Binary Tree from Inorder and Postorder Traversal

    Given inorder and postorder traversal of a tree, construct the binary tree.

    Note:
    You may assume that duplicates do not exist in the tree.

    class Solution {
    public:
        TreeNode *buildTree(vector<int>& inorder, int in_left,int in_right,
                            vector<int>& postorder,  int post_left, int post_right){
            if(in_right < in_left || post_right < post_left) return NULL;
            TreeNode *root = new TreeNode(postorder[post_right]);
            int index = in_left;
            for( ; index <= in_right; ++ index ) if(inorder[index] == postorder[post_right])  break;
            int right_cnt = in_right-index;
            root->left = buildTree(inorder,in_left,index-1,postorder,post_left,post_right-right_cnt-1);
            root->right = buildTree(inorder,index+1,in_right,postorder, post_right-right_cnt,post_right-1);
            return root;
        }
    
        TreeNode *buildTree(vector<int> &inorder, vector<int> &postorder) {
            if(inorder.size() == 0) return NULL;
            else return buildTree(inorder,0,inorder.size()-1, postorder,0,postorder.size()-1);
        }
    };
  • 相关阅读:
    mysql 注意事项 PreparedStatement 对比 statement
    Dbutils commons-dbutils-1.3
    C3P0 mysql 5.7
    servlet-应用mysql-1
    javabean 用integer 而不是int
    servlet-1
    servlet 路径 编码 问题
    mac tomcat 9.0
    case end 的用法
    自定义抛出异常
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3821197.html
Copyright © 2011-2022 走看看