需要帮助找到一种构建二叉树的方法,给定中序遍历和层次遍历。是否可以使用递归来完成,因为层次遍历必须使用队列?
需要帮助找到一种构建二叉树的方法,给定中序遍历和层次遍历。是否可以使用递归来完成,因为层次遍历必须使用队列?
8
/ \
4 9
/ \ \
2 6 10
/
1
你有以下内容:
中序遍历:1 2 4 6 8 9 10
层级遍历:8 4 9 2 6 10 1
层级遍历是树的从左到右、从上到下的遍历方式(类似于广度优先搜索)。在这个例子中,我们知道8
将成为根节点。现在看中序遍历,我们知道1 2 4 6
组成左子树,9 10
组成右子树。因此我们有:
8
1 2 4 6 9 10
保持顺序,复制层遍历的内容,但不包括我们要访问的左右递归构造节点。以下说明将介绍左子树步骤以及通过什么传递:
中序遍历:1 2 4 6
层次遍历:4 2 6 1
4
1 2
6
结果:
8
/ 9 10
4
2 1 \
6
中序遍历: 1 2
层次遍历: 2 1
2
1
结果:
8
/ 9 10
4
/ \
2 6
/
1