버튼 알고리즘 문제 -144Binary 트리 예약 주문 순회을 그대로

이진 트리 감안할 때, 반환  전순  의 노드의 값의 통과를.

예:

입력 :  [1,null,2,3]
   1 
    \ 
     2 
    / 
   3 

출력 : [1,2,3]

후속 : 재귀 해결책은 간단하다, 당신은 반복적으로 그것을 할 수 있을까?

 

해결책:

  다음 왼쪽 노드에 노드와 오른쪽에 배치 스택을 사용하는 것이 매우 간단이 팝 왼쪽의 제 노드

  

1 개  솔루션 {
 2  공개 :
 3      <벡터 INT > preorderTraversal (*에서의 TreeNode의 루트) {
 도 4          의 경우 (루트 == nullptr) {};
5          벡터 < INT > 입술;
6          스택 <TreeNode를 *> S;
7          s.push (루트);
8          동안 (! s.empty ())
 (9)          {
 10              의 TreeNode의 *를 p = s.top ();
11              s.pop ();
12              res.push_back (P-> 발);
13              의 경우 (P-> 오른쪽) s.push (P-> 오른쪽);
14              의 경우 (P-> 왼쪽) s.push (P-> 왼쪽);
15          }
 16          리턴 입술;
17      }
 18 };

 

추천

출처www.cnblogs.com/zzw1024/p/11774591.html