二叉树的遍历

1.利用递归进行遍历

递归是通过将参数压入栈中,到达最后一层后进行相应处理然后不断返回上一层进行处理。

前序遍历

中序遍历

只需要将traversal函数中的访问节点顺序中间节点调至中间

后序遍历

顺序换为左右中

2、利用迭代进行遍历

前序遍历

前序遍历按照根左右的顺序,先将根节点入栈,取出它的值加入result数组中,从栈中取出top然后右左节点依次入栈,这样出栈的时候才能先左后右。当栈中没有节点时说明遍历结束。

中序遍历

前序遍历中,访问节点和要处理的元素的顺序是一致的。但是中序遍历是访问顺序和处理顺序不一致,在遍历过程中,我们要先到达左子树的最左边位置,然后从该节点向上访问。

后序遍历

后序遍历是左右根,前序是根左右,我们可以在前序遍历中节点入栈改为先左后右,此时遍历的顺序为根右左,然后再将得到的结果反过来即得到后序遍历的结果。

3、层序遍历

利用队列储存每层元素,队列为空时说明遍历结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值