已知中序遍历和先序遍历可以唯一确定一棵二叉树,因为根结点是先序遍历的第一个结点,我们只要在中序遍历中找到根结点的位置,就能划分左右子树。然后递归地处理左右子树,就能唯一构建一棵二叉树。
同理已知中序遍历和后序遍历也能唯一确定一棵二叉树。
但是已知先序遍历和后序遍历不能唯一确定一棵二叉树,反例如下:
左右两棵树的先序遍历都为1 2
,后序遍历都为2 1
,但不相同。
已知先序遍历和中序遍历求二叉树的方法如下
设先序遍历
7143265 7 1 4 3 2 6 5 7143265
中序遍历为
1342756 1 3 4 2 7 5 6 134