889. 根据前序和后序遍历构造二叉树(非递归)

题目连接:

https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-postorder-traversal/

题目大意:

中文题目

AC代码:

 1 TreeNode * construcuFormPrePost(vrctor<int>& pre, vector<int>&post){
 2 
 3     if(pre.empty())
 4         return NULL;
 5     stack<TreeNode*>S;
 6     auto root = new Treenode(pre[0]);
 7     S.push(root);
 8     for(int i = 1, j = 0; i <pre.size(); i++){
 9         auto node = new TreeNode(pre[i]);
10         while(S.top()->val == post[j])S.pop(), j++;
11         if(!S.top()->left)
12             S.top()->left = node;
13         else 
14             S.top()->right = node;
15         S.push(node);     
16     }
17     return root;
18 }

 

posted @ 2019-09-13 16:57  Let_Life_Stop  阅读(344)  评论(0编辑  收藏  举报