이진 트리 감안할 때, 반환 전순 의 노드의 값의 통과를.
예:
입력 :[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 };