zoukankan      html  css  js  c++  java
  • LC 889. Construct Binary Tree from Preorder and Postorder Traversal

    Return any binary tree that matches the given preorder and postorder traversals.

    Values in the traversals pre and post are distinct positive integers.

     

    Example 1:

    Input: pre = [1,2,4,5,3,6,7], post = [4,5,2,6,7,3,1]
    Output: [1,2,3,4,5,6,7]
    

     

    Note:

    • 1 <= pre.length == post.length <= 30
    • pre[] and post[] are both permutations of 1, 2, ..., pre.length.
    • It is guaranteed an answer exists. If there exists multiple answers, you can return any of them.

    Runtime: 20 ms, faster than 10.38% of C++ online submissions for Construct Binary Tree from Preorder and Postorder Traversal.

    想用map优化查找left root的速度,结果更慢了....

    #include <assert.h>
    class Solution {
    private:
      unordered_map<int,int>mp;
    public:
      TreeNode* constructFromPrePost(vector<int>& pre, vector<int>& post) {
        for(int i=0; i<post.size(); i++) mp[post[i]] = i;
        return helper(pre, post, 0, pre.size()-1, 0, post.size()-1);
      }
      TreeNode* helper(vector<int>& pre, vector<int>& post, int pres, int pree, int poss, int pose){
        if(pres > pree || poss > pose) return nullptr;
        assert(pre[pres] == post[pose]);
        int rootval = pre[pres];
        TreeNode* root = new TreeNode(rootval);
        if(pres == pree && poss == pose) return root;
        int leftidx = mp[pre[pres+1]];
        int leftlength = leftidx - poss + 1;
        int leftpose = pres + leftlength;
        root->left = helper(pre, post, pres+1, leftpose, poss, leftidx);
        root->right = helper(pre, post, leftpose+1, pree, leftidx+1, pose-1);
        return root;
      }
    };
  • 相关阅读:
    hp一體機cartridge error及carriage jam4/22
    指纹仪zkonline.ocx:access violation...4/13
    IIS6:Service Unaviable 9/27
    寶寶的成長腳印3/15
    vs2003不能调试4/8
    C++ 的复制构造函数
    导入与导出数据 大容量复制程序(bcp)
    关于SQlserver数据库的加密应用
    DataGridView使用技巧
    使用C# 向记事本窗口发送消息
  • 原文地址:https://www.cnblogs.com/ethanhong/p/10191384.html
Copyright © 2011-2022 走看看