gpt4 book ai didi

data-structures - 为什么递归中序遍历的空间复杂度是 O(h) 而不是 O(n)

转载 作者:行者123 更新时间:2023-12-04 05:36:46 24 4
gpt4 key购买 nike

所以我知道递归顺序遍历的空间复杂度是 O(h) 而不是 O(n),因为 h = 树高,n = 树中的节点数。

这是为什么?可以说这是遍历的代码:

public void inorderPrint (TreeNode root) {

if (root == null) {
return;
}

inorderPrint(root.left);
System.out.println(root.data);
inorderPrint(root.right);

}

我们将 n 个内存地址推送到调用堆栈,因此,空间复杂度应该是 O(n)。

我错过了什么?

最佳答案

返回时从堆栈中删除地址。当从更接近根的级别进行新调用时,此空间将被重新使用。所以同时栈上内存地址的最大数量就是树的高度。

关于data-structures - 为什么递归中序遍历的空间复杂度是 O(h) 而不是 O(n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41201908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com