1.概述
Morris遍历:一种遍历二叉树的方式,并且时间复杂度O(N),额外空间复杂度O(1)
通过利用原树中大量空闲指针的方式,达到节省空间的目的
2.分析
首先说明,我们以前学的东西,无论是使用栈的方式还是使用递归的方式都无法做到时间复杂度O(N),额外空间复杂度O(1)
。
使用递归函数是因为系统帮我们压栈了,所以递归使用的额外空间是二叉树的高度。
但是Morris遍历是可以做到时间复杂度O(N),额外空间复杂度O(1)的方法。
在Morris遍历遍历的基础上,可以改出来先序遍历,后续遍历,中序遍历。
因为Morris遍历通过利用原树中大量空闲指针的方式,达到节省空间的目的,如果题目要求你遍历的时候严禁修改这个树,Morris遍历是不可用的
2.1 Morris遍历细节
假设来到当前