gpt4 book ai didi

java - for循环在递归方法中遇到return语句

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:20:38 25 4
gpt4 key购买 nike

public void delete(String key) {
root = delete(root, key, 0);
}

public Node delete(Node x, String key, int d) {
if(x == null)
return null;
if(d == key.length())
x.val = null;
else {
char c = key.charAt(d);
x.next[c] = delete(x.next[c], key, d + 1);
}

//----------------
if(x.val !=null )
return x;
for (char c = 0;c < R ; c++ ) {
if(x.next[c] != null)
return x;
return null;
}
}

来自 BOOK Algoritm 4, TrieST.java

这是怎么回事? for 循环可以多次返回x;返回类型方法可以吗?如果没问题,那么最终的返回值是多少?

最佳答案

一旦调用“return”,函数就终止。

所以函数返回的值是:

  • x 如果 x.val != null
  • x 如果对于第一个 c(即 c = 0),x.next[c] !=null
  • null 否则

评论里说的,我猜肯定是打错了

return null;

应该在 for 循环之后。然后该函数将返回:

  • x 如果 x.val != null
  • x 如果有 cx.next[c] !=null
  • null 否则

关于java - for循环在递归方法中遇到return语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33366606/

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