Construct Binary Tree from Preorder and Inorder Traversal
通过二叉树的 前序遍历序列 和 中序遍历序列 重构二叉树
步骤:
1、遍历前序遍历序列,每次遍历一个值,创建一个节点,并将节点压入栈,新创建的节点连接为栈顶节点的左孩子节点(如果第2步中的记录pop的节点非空,那么连接为该记录节点的右孩子)
2、每次压入新节点后需要进行一次比较,栈顶节点的值与中序遍历开头比较,如果相等,那么栈pop,中序遍历开头向后移动一位(后面一位作为开头),之后再次比较,直到不相等为止,如果存在一次栈pop,那么用一个变量记录之,直到最后一次pop,这个变量最终为最后一次pop的节点,如果没有pop,那么该节点赋值为空
3、反复进行1,2步,直到遍历完前序遍历序列,那么二叉树创建完毕,返回第一次创建的节点(那个节点为 root 哦,一开始要存储一下,此处为细节处理)
Construct Binary Tree from Postorder and Inorder Traversal
同上,自行修改算法即可
本文详细介绍了如何利用二叉树的前序遍历序列和中序遍历序列来构建二叉树的过程。通过一系列步骤,包括遍历前序序列创建节点并压入栈,以及与中序序列的比较来确定节点的左右子树,最终实现二叉树的重建。
254

被折叠的 条评论
为什么被折叠?



