[LeetCode] (113) 경로 합 II

이진 트리와 합을 감안할 때, 각 경로의 합이 주어진 금액에 해당하는 모든 루트 - 투 - 잎 경로를 찾을 수 있습니다.

참고 : 잎은 자녀가없는 노드입니다.

예:

아래 이진 트리를 감안할 때  sum = 22,

      5 
     / \ 
    4~8 
   / / \ 
  11 13 4 
 / \ / \ 
7 5 2 1

반환:

[ 
   [5,4,11,2], 
   [5,8,4,5]가 
] 

제목 요구 사항은 이진 트리 노드 값의 합에 나와있는 경로의 합과 같다.
그리고 한이 질문의 증가에 할 수있는 이진 트리의 합과 같다 같은 질문에 비슷한. 이 질문에 문제 및뿐만 아니라 같은 생각에, 경로에 잎 노드에 루트 노드를 계산하는 재귀 적 방법의 사용 가치는 덧붙였다.
경로를 기록하는 다른 배열 밖으로 롤백 노드. 밖으로 리프 노드에 다음 문제는 트리 노드에서 다른 아이가 요구 사항을 충족할지 여부를 결정할 때 플러스와 합과 같다 롤백합니다.


특정 코드는 다음과 같이 :
클래스 해결 {
 공개 : 
    벡터 <벡터 < INT >> pathSum (*의 TreeNode의 뿌리, INT의 합) { 
        벡터 <벡터 < INT >> 입술; 
        벡터 < INT > 아웃 ; 
        경로 (루트, 합계, 밖으로 , 고해상도);
        반환 입술을; 
    } 
    무효 경로 (*의 TreeNode의 뿌리, INT의 합 벡터 < INT > 및 아웃 벡터 <벡터 < INT >> 및 고해상도)를 {
         경우 (! 루트 ) { 
            입술= {};
            반환 ; 
        } 
        아웃 .push_back (루트 -> 발);
        만약 (! 루트 -> 좌측 && 루트 -> 오른쪽 && 루트 -> 브로 == 합) { 
            res.push_back ( 아웃 ); 
        } 
        경우 (루트 -> 좌측) 경로 (루트 -> 좌, 합계 루트 레벨> 계산해 출력 , 해상도);
        경우 (루트 -> 오른쪽) 경로 (루트 -> 오른쪽 합계 루트 레벨> 계산해 출력 , 해상도);
        아웃 .pop_back ();
        반환 ; 
    } 
};

 

추천

출처www.cnblogs.com/cff2121/p/10988120.html