今天分享两道经典的题目
1、105.Construct Binary Tree from Preorder and Inorder Traversal
根据前序和中序遍历重建二叉树
Loading...leetcode.com![ec54c4ec2027ca9497ecf6166c95243c.png](https://i-blog.csdnimg.cn/blog_migrate/d6179c4f768b3ac02aaa0b37397ac3fb.jpeg)
Given preorder and inorder traversal of a tree, construct the binary tree.Note:
You may assume that duplicates do not exist in the tree.
For example, given
preorder
Return the following binary tree:
3
【思路】
构造该二叉树的过程如下:
1. 根据前序序列的第一个元素建立根结点;
2. 在中序序列中找到该元素,确定根结点的左右子树的中序序列;
3. 在前序序列中确定左右子树的前序序列;
4. 由左子树的前序序列和中序序列建立左子树;
5. 由右子树的前序序列和中序序列建立右子树。
【参考代码】
//Create By herongwei 2018/08/11
2、106.Construct Binary Tree from Inorder and Postorder Traversal
根据中序和后序遍历重建二叉树。
Loading...leetcode.com![ec54c4ec2027ca9497ecf6166c95243c.png](https://i-blog.csdnimg.cn/blog_migrate/d6179c4f768b3ac02aaa0b37397ac3fb.jpeg)
Given inorder and postorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
For example, given
inorder = [9,3,15,20,7]
postorder = [9,15,7,20,3]
Return the following binary tree:
3
/
9 20
/
15 7
【思路】
1. 根据后序序列的最后一个元素建立根结点;
2. 在中序序列中找到该元素,确定根结点的左右子树的中序序列;
3. 在后序序列中确定左右子树的后序序列;
4. 由左子树的后序序列和中序序列建立左子树;
5. 由右子树的后序序列和中序序列建立右子树。
【参考代码】
//Create By herongwei 2019/08/11
![e280dc6df1f0fa103c2a6c3eaa324f27.png](https://i-blog.csdnimg.cn/blog_migrate/ee73e051d7edeb0b88378845a51f7e97.jpeg)