다음은 이진 검색 트리에서 상위 항목을 찾는 코드입니다. 나는 그것이 null이 아닌 부모에게 어떤 가치도 할당하지 않기 때문에 그것이 어떻게 작동 하는지를 이해할 수 없다. 나는 재귀에 처음이다.이진 검색 트리에서 부모 찾기
public Node findParent(Type data)
{
return findParent(data, root, null);
}
public Node findParent(Type x, Node node, Node parent)
{
if (node == null) {
return null;
} else if (!(node.data == x)) {
parent = findParent(x, node.left, node);
if (parent == null) {
parent = findParent(x, node.right, node);
}
}
return parent;
}
내가 인정해야한다 (재귀 설명하기 어렵다) (http://stackoverflow.com/a/27034602/733637) @Eran에 의해, 코드에 보이지 않는 트리를 BST로 사용하면 - 현재 노드의 왼쪽과 오른쪽 서브 트리 모두에 주어진 값을 찾고,'x' 매개 변수에 주어진 값이'x '보다 작거나 큰지 여부를 테스트하지 않습니다 '노드의 멤버. – CiaPan