在下面的程序中,我将变量设置th为true第二个if语句中的变量.我很好奇为什么它后来又回来了false.
public boolean nodeExist(TreeNode Tree, T value){
boolean th = false;
if(Tree.getValue()!= null){
if(value == Tree.getValue()){
th = true;
}else{
if(value.compareTo((T) Tree.getValue()) < 0){
nodeExist(Tree.getLeft(), value);
}else{
nodeExist(Tree.getRight(), value);
}
}
}else{
th = false;
}
return th;
}
Run Code Online (Sandbox Code Playgroud)
您可能会查看设置th为true 的递归调用.但是当该调用返回其调用者时,它 th仍处于false状态,然后返回.您需要分配递归被调用者的结果:
if(value.compareTo((T) Tree.getValue()) < 0){
th = nodeExist(Tree.getLeft(), value);
}else{
th = nodeExist(Tree.getRight(), value);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |