Skip to content

Commit

Permalink
go
Browse files Browse the repository at this point in the history
  • Loading branch information
robot committed Mar 5, 2022
1 parent cbcd4d9 commit 4ff5406
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion thinkings/binary-tree-traversal.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,10 @@ class Solution:

我们可以使用一种叫做 Morris 遍历的方法,既不使用递归也不借助于栈。从而在 $O(1)$ 空间完成这个过程。

**如果你需要使用 $O(1)$ 空间遍历一棵二叉树,那么就要使用 Morris 遍历。**

这个算法考察相对少,作为了解即可。

```python
def MorrisTraversal(root):
curr = root
Expand Down Expand Up @@ -197,7 +201,17 @@ def MorrisTraversal(root):

参考: [what-is-morris-traversal](https://www.educative.io/edpresso/what-is-morris-traversal)

**划重点:Morris 是一种可以在 $O(1)$ 空间遍历二叉树的算法。\***
**划重点:Morris 是一种可以在 $O(1)$ 空间遍历二叉树的算法。**

## 总结

本文详细讲解了二叉树的层次遍历和深度优先遍历。

对于深度优先遍历,我们又细分为前中后序三种遍历方式。

最后我们讲解了双色遍历和 Morris 遍历。这两种方式可以作为了解,不掌握也没关系。

另外,如果题目要求你实现迭代器(就是调用一次输出一个二叉树的值),那么前面讲的迭代的方式就非常适用了。比如这道题 [Binary Search Tree Iterator](https://binarysearch.com/problems/Binary-Search-Tree-Iterator)

## 相关专题

Expand Down

0 comments on commit 4ff5406

Please sign in to comment.