二叉树后序遍历的三种解法(图解两种非递归)

题目描述:给定一个二叉树,返回它的 后序 遍历。

示例:如下图二叉树的后序遍历结果为 {4,5,2,6,7,3,1};

解析:递归一种,非递归两种

首先给出三种方法的链接

method 1:递归

递归的方法很简单,递归就完事了;

method 2:栈的后序遍历(非递归)

这个方法就是利用栈来保存下一次需要访问到的节点,但是再后序遍历中我们需要一些特殊的标记,来防止其的重复进出栈;具体操作请看下图(以上图示例为例);

 

 

接下来多次循环,一个完整的非递归后序遍历就结束了。 

method 3:反栈后序遍历(非递归)

我们再上个非递归的方法中可以看出,后序遍历是本着从下往上和从左往右的方向进行,那么我们这个方法的思路就来了;我们就可以从上往下再从右往左进行遍历,然后将遍历的结果进行逆置即可;

 

就如上图这样遍历完之后的输出结果为{1,3,7,6,2,5,4} 逆置完之后就是{4,5,3,6,7,3,1}这就是后序遍历的结果了。

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值