LeetCode_112. 경로 합

 

(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); 
		} 
	}
}

 

추천

출처www.cnblogs.com/denggelin/p/11619789.html