(112) 경로 합
쉬운
경로를 따라 모든 값을 추가하는 것은 주어진 합과 동일 그 나무는 루트 - 투 - 잎 경로가있는 경우 이진 트리와 합을 감안할 때, 결정한다.
참고 : 잎은 자녀가없는 노드입니다.
예:
아래 이진 트리를 감안할 때 sum = 22
,
5 / \ 4~8 / / \ 11 13 4 / \ \ 7 2 1
루트 - 투 - 잎 경로가 존재하는 한, true를 반환 5->4->11->2
합은 22이다.
패키지 leetcode.easy; 공용 클래스 PathSum { @ org.junit.Test 공개 무효 시험 () { INT 합 = 22; TreeNode를 tn11 = 새의 TreeNode (5); TreeNode를 tn21 = 새의 TreeNode (4); TreeNode를 tn22 = 새의 TreeNode (8); TreeNode를 tn31 = 새의 TreeNode (11); TreeNode를 TN33 = 새의 TreeNode (13); TreeNode를 tn34 = 새의 TreeNode (4); TreeNode를 tn41 = 새의 TreeNode (7); TreeNode를 tn42 = 새의 TreeNode (2); TreeNode를 tn46 = 새로운 TreeNode를 (1); tn11.left = tn21; tn11.right = tn22; tn21.left = tn31; tn21.right = NULL; tn22.left = TN33; tn22.right = tn34; tn31.left = tn41; tn31.right = tn42; tn33.left = NULL; tn33.right = NULL; tn34.left = NULL; tn34.right = tn46; tn41.left = NULL; tn41.right = NULL; tn42.left = NULL; tn42.right = NULL; tn46.left = NULL; tn46.right = NULL; 에서 System.out.println (hasPathSum (tn11, 합)); } 공개 부울 hasPathSum (TreeNode를 루트 INT 합) { 경우 (NULL == 루트) { false를 반환; } 다른 경우 (NULL == root.left && 널 == 0 && root.right == 합 - root.val) { 참을 리턴; } 다른 { || - hasPathSum (root.val root.left, 합계)을 반환 hasPathSum (root.right, 합 - root.val); } } }