摘要:
今天在切leetcode的时候看到一个Morris算法,用来中序遍历二叉树,非递归,O(1)空间。觉得很强大。记录一下。基本思想是利用了Threaded Binary Tree。步骤如下:current节点设置为root。如果current不为空,到2,否则返回;如果current没有左子树,输出current的值,current等于current.right;如果current有左子树,首先找到current节点的precedent,也就是该节点左子树中最最右边那个节点。然后把最最右边这个节点的右link指向当前节点。如下图。 e.g. 当current是7的时候,我们找到4,并人为地... 阅读全文