二叉树的Morris遍历
一.树型dp基本结构

一种分类:分头节点 X 参不参与

然后定返回值结构,造黑盒。。如下:

然后写递归函数:

(可见)
二.快乐值问题
1.分析:

2.确定递归返回值

3.递归函数

4.主函数

三.Morris遍历
1.介绍:

其他遍历方式做不到额外空间复杂度O(1)
2.概要

##3.线索二叉树

非叶子节点都会来到两次,叶子节点仅一次。而用递归函数会每个节点到达三次。
3.代码

4.利用Morris改写递归遍历
1)先序遍历:


2)中序遍历:


3)后序遍历:


逆序操作:看成单链表的逆序打印,打印完成后再恢复即可。

逆序函数:

主函数:

5.Morris的例子
判断是否为搜索二叉树:使用中序遍历的Morris,将打印行为改为比较行为。

6.Morris与二叉树的递归套路比较
如果必须要进行第三次信息的强整合,即用一个节点的结果需要左子树和右子树的结果得到,则使用递归套路为最优解。当不必时Morris为最优解。

浙公网安备 33010602011771号