HasPathsum은 2개의 매개변수를 취합니다. 하나는 트리 노드이고 다른 하나는 합계 값입니다. 처음에는 노드가 null인지 여부를 확인하고 노드가 null이면 false를 반환합니다. 노드가 null이 아니면 HasPathSum 재귀 메서드를 호출합니다. 각 재귀 단계에서 계속해서 노드 값에서 합계 값을 뺍니다. 합계 값이 0에 도달하면 주어진 트리에 합계와 동일한 경로가 있고 true를 반환한다는 결론에 도달합니다.
예시
public class TreesPgm{
public class Node{
public int Value;
public Node LeftChild;
public Node RightChild;
public Node(int value){
this.Value = value;
}
public override String ToString(){
return "Node=" + Value;
}
}
public bool HasPathSum(Node node, int sum){
if (root == null){
return false;
}
return helperHasPathSum(node, sum);
}
private bool helperHasPathSum(Node root, int sum){
if (root == null){
return false;
}
sum -= root.Value;
if (root.LeftChild == null && root.RightChild == null && sum == 0){
return true;
}
return helperHasPathSum(root.LeftChild, sum) || helperHasPathSum(root.RightChild, sum);
}
} 입력
5 2 6 1 3 7
출력
True