返回与给定的前序和后序遍历匹配的任何二叉树。
pre
和 post
遍历中的值是不同的正整数。
示例:
1 | 输入:pre = [1,2,4,5,3,6,7], post = [4,5,2,6,7,3,1] |
提示:
1 <= pre.length == post.length <= 30
pre[]
和post[]
都是1, 2, ..., pre.length
的排列- 每个输入保证至少有一个答案。如果有多个答案,可以返回其中一个。
解决方案
- 思路:仅知道先序遍历和后序遍历的结果,满足条件的二叉树并不唯一。一种直观的方法是:按照先序遍历和后序遍历的特点,先构造根结点root,然后找出左子树left和右子树right的起止范围,对它们递归执行该过程即可。
1 | /*public class TreeNode { |