We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 6a849ef + 5e26602 commit 7cfbcc6Copy full SHA for 7cfbcc6
thinkings/tree.md
@@ -212,6 +212,8 @@ class Solution:
212

213
(前中后序遍历只需要调整这三句话的位置即可)
214
215
+> 注:这张示意图的前序和后序画反了
216
+
217
可以看出使用三色标记法,其写法类似递归的形式,因此便于记忆和书写。
218
219
有的同学可能会说,这里的每一个节点都会入栈出栈两次,相比普通的迭代入栈和出栈次数整整加了一倍,这性能可以接受么?我要说的是这种时间和空间的增加仅仅是常数项的增加,大多数情况并不会都程序造成太大的影响。 除了有时候比赛会比较恶心人,会**卡常**(卡常是指通过计算机原理相关的、与理论复杂度无关的方法对代码运行速度进行优化)。反过来看,大家写的代码大多数是递归,要知道递归由于内存栈的开销,性能通常比这里的二色标记法更差才对, 那为啥不用一次入栈的迭代呢?更极端一点,为啥大家不都用 morris 遍历 呢?
0 commit comments