gpt4 book ai didi

java - 递归: How do I return value-1 from recursive function

转载 作者:行者123 更新时间:2023-12-01 20:53:47 24 4
gpt4 key购买 nike

我编写了一个方法来返回二叉搜索树的高度。

现在我尝试从递归方法返回height - 1。我通过添加额外的 if 条件来做到这一点。

是否有更好的方法从递归函数返回值 - 1

static int height(Node root) {
if (root == null) {
return 0;
}

if (root.left == null && root.right==null) {
return 1;
} else
// I want to return height - 1.
// For example if max height is 10, I wanted to return 9.
return (1 + Math.max(height(root.left), height(root.right));
}
}

最佳答案

在基本情况下分别返回 -1 和 0:

static int height(Node root) {
if(root == null)
return -1;
if(root.left == null && root.right==null)
return 0;
else
return 1+ Math.max(height(root.left),
height(root.right));
}

更新以符合评论中提到的要求:“如果我想为空节点返回 0,为单个节点返回 1,为所有其他节点返回 height-1,该怎么办。”

static int funny_height(Node root) {
int h = height(node);
return h <= 0 ? h + 1 : h;
}

关于java - 递归: How do I return value-1 from recursive function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42712797/

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