leetcode105. 从前序与中序遍历序列构造二叉树
三月 14, 2020
leetcode105. 从前序与中序遍历序列构造二叉树
根据一棵树的前序遍历与中序遍历构造二叉树。
注意:
你可以假设树中没有重复的元素。
例如,给出
前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]
返回如下的二叉树:
3
/ \
9 20
/ \
15 7先看这么一颗树:
1
/ \
2 3
/ \ / \
4 5 6 7
/ \
8 9前序遍历为: [1,2,4,5,3,6,8,9,7]
中序遍历为: [4,2,5,1,8,6,9,3,7]
这棵树的根节点为 1,能够由前序遍历的第一个元素知道.
然后看中序遍历, 1 的左边,为左子树,1 的右边为右子树.以左子树 4,2,5 为例.
在前序遍历中,2,4,5和3,6,8,9,7分别为1的左右子树 . 遍历2,4,5第一个遍历到的是2,说明2为这棵树的根节点,然后再去中序遍历找,这么递归下去.
[1,==2,4,5==,==3,6,8,9,7==]
[==4,2,5==,1,==8,6,9,3,7==]
1 | class Solution { |
leetcode 47/100
查看评论