这是二叉树类的一部分,这里是 find 函数,给出在树中查找节点的键,如果没有找到返回null
,但是这部分已被识别为死代码,当我将if(current==null)
语句移动到底部时内while
循环,它的工作原理,为什么?是一样的吗?
public class Tree {
public Node root;
public Node find(int key) {
Node current = root;
while (current.key != key) {
if (current == null) { //dead code here, why?
return null;
}
if (key < current.key) {
current = current.leftChild;
} else if (key > current.key) {
current = current.rightChild;
}
}
return current;
}
}
public class Node {
public char label;
public boolean visited = false;
public int key;
public float data;
public Node leftChild;
public Node rightChild;
}