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

Posted letlifestop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 

 

以上是关于889. 根据前序和后序遍历构造二叉树(非递归)的主要内容,如果未能解决你的问题,请参考以下文章

889. 根据前序和后序遍历构造二叉树

889. 根据前序和后序遍历构造二叉树

树889. 根据前序和后序遍历构造二叉树

构造一棵二叉树,并分别输出其先序遍历、中序遍历和后序遍历的结果

二叉树前序后序和后序遍历(非递归实现)

二叉树前序中序和后序遍历的非递归实现