You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Morris中序遍历的空间复杂度能达到O(1)?

Morris中序遍历空间复杂度的疑问

我了解到Morris中序遍历的优势在于空间复杂度为O(1),而非递归或栈迭代方式的O(h)(h为树的高度)。但观察算法发现,在类似如下的单链树示例中:

1
     /
    2
   / 
  3
 /
4

遍历到节点4时,除根节点外的每个节点都会新增指向父节点的右指针,数量达*O(h)*个。是否因为多数编程语言中null指针与非null指针占用空间相同,修改右指针不会新增空间?若如此,这种语言无关算法依赖实现细节来定义复杂度,更像一种取巧手段。例如在JavaScript中,将{left : node2}改为{left: node2, right: node1}会占用更多空间,此时空间复杂度的结论就不成立。

内容的提问来源于stack exchange,提问作者Ricola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 18:16:59