LeetCode (113) 경로 합 II 동적 프리젠 테이션

첫 번째 목표 값, 잎에 트리 루트에서 반환 경로와 목표 값에 대한 모든 같음.

고전 깊이 우선 알고리즘

/ * * 
 * 이진 트리 노드에 대한 정의. 
 * 구조체의 TreeNode { 
 * INT의 발; 
 * * TreeNode를 왼쪽; 
 * * TreeNode를 오른쪽; 
 *의 TreeNode (INT의 X) 발 (X), 오른쪽 (NULL) (NULL) 왼쪽 {} 
 *}; 
 * / 
클래스 해결 {
 공개 :
     공극 도우미 (TreeNode를 * CUR, INT의 합, INT의 타겟 벡터 < INT > 및 출력 벡터 <벡터 < INT >> 및 RET) {
         // A (CUR)
         // LK ( "루트 "은 CUR)
         // ) A (합계
         // )은 (타겟
         //DSP 
        경우 (Cur 코드> 좌측의 Cur &&>!는! 오른쪽) {
             경우 (합계 == 타겟) { 
                ret.push_back (출력);                
            } 
            반환 ; 
        } 
        
        경우 (Cur 코드> 좌측) { 
            output.push_back (현재 -> 왼쪽> 발); 
            헬퍼 (현재 -> 좌, 합계 +의 Cur> 왼쪽> 발, 목표 출력 RET); 
            output.pop_back ();    
        } 
        
        경우 (Cur 코드> 오른쪽) { 
            output.push_back (현재 -> 오른쪽> 발); 
            도우미 (현재 -> 오른쪽 합 +의 Cur> 오른쪽>발, 목표 출력 RET); 
            output.pop_back ();    
        }         
    } 
    
    벡터 <벡터 < INT >> pathSum (*의 TreeNode의 뿌리, INT의 합) {         
        벡터 < INT > 출력; 
        벡터 <벡터 < INT >> RET;
        // 고인 (루트)
         // A (RET)을
         // A (출력) 
        하는 경우 (! 루트)
             반환 RET; 
        
        output.push_back (루트 -> 발); 
        도우미 (루트, 루트 ->발, 합 출력, RET);
        반환 RET를;    
    } 
};

동적 프레젠테이션을 실행  http://simpledsp.com/FS/Html/lc113.html

 

추천

출처www.cnblogs.com/leetcoder/p/11324874.html