From 4ff540603917558a9f188c4d59eaaf124fde8cec Mon Sep 17 00:00:00 2001 From: robot Date: Sat, 5 Mar 2022 13:21:57 +0800 Subject: [PATCH] go --- thinkings/binary-tree-traversal.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/thinkings/binary-tree-traversal.md b/thinkings/binary-tree-traversal.md index 3dee5ffda..27b613bf7 100644 --- a/thinkings/binary-tree-traversal.md +++ b/thinkings/binary-tree-traversal.md @@ -157,6 +157,10 @@ class Solution: 我们可以使用一种叫做 Morris 遍历的方法,既不使用递归也不借助于栈。从而在 $O(1)$ 空间完成这个过程。 +**如果你需要使用 $O(1)$ 空间遍历一棵二叉树,那么就要使用 Morris 遍历。** + +这个算法考察相对少,作为了解即可。 + ```python def MorrisTraversal(root): curr = root @@ -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) ## 相关专题