Это часть класса двоичного дерева, вот функция поиска, учитывая ключ для поиска узла в дереве, если он не найден, возвращает 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;
}
root
? Где вы это определили? - person Vimal Bera   schedule 31.12.2013root
, поэтомуcurrent
ВСЕГДА имеет значение null... - person Marc B   schedule 31.12.2013