반복적으로 반복적으로 이진 트리를 탐색하고 특정 값을 찾는 횟수를 계산하는 방법을 찾고 있습니다. 내가 겪고있는 한 가지 문제는 첫 번째 방법에서 루트입니다.이진 트리에서 특정 값을 가진 노드를 계산합니다.
노드 내부 클래스 :
private class Node {
int data;
Node root;
Node left;
Node right;
}
재귀 & 도우미 방법 : 나는 완전히 확실하지 않다, 그래서
public int valCount(int val) {
if (root != null) {
return valCount(val, root);
}
return 0;
}
public int valCount(int val, Node root) {
int cnt = 0;
if (root.left != null) {
if (root.left.data == val) {
cnt++;
}
valCount(val, root.left);
}
if (root.right != null) {
if (root.right.data == val) {
cnt++;
}
valCount(val, root.right);
}
return cnt;
}
나는 때문에 근본 문제로 테스트 할 수 없었던 내 출력 것이다 맞다. 그래서, 질문을 묻는 구걸한다. .. 나는 심지어 바른 길 위에있다? 내 접근 방식이 심지어 의미가 있습니까? 어떤 도움이라도 굉장합니다. 건배!
재귀 호출에서도'cnt'를 전달하고'class' 범위에서'cnt'를 정의하십시오. – Prateek