Construct Binary Tree from Preorder (Postorder) and Inorder Traversal

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

同上,自行修改算法即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值