첫 번째 목표 값, 잎에 트리 루트에서 반환 경로와 목표 값에 대한 모든 같음.
고전 깊이 우선 알고리즘
/ * * * 이진 트리 노드에 대한 정의. * 구조체의 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