94. Binary Tree Inorder Traversal - 반복, 스택
1144 단어 중순으로 두루 다니다.leetcode
For example:Given binary tree
{1,#,2,3}
, 1
\
2
/
3
return
[1,3,2]
. 해법 1:
귀속
void inorderTraversal(TreeNode *root,vector &res){
if(root){
inorderTraversal(root->left,res);
res.push_back(root->val);
inorderTraversal(root->right,res);
}
}
vector inorderTraversal(TreeNode* root) {
vector res;
inorderTraversal(root,res);
return res;
}
해법 2:
창고를 이용하다
void inorderTraversal(TreeNode *root,vector &res){
if(!root)
return;
stack st;
while(!st.empty()||root){
while(root){//
st.push(root);
root=root->left;
}// ,
root=st.top();
st.pop();
res.push_back(root->val);
root=root->right;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
알고리즘 연습 문제 43: 귀속과 비귀속이 두 갈래 나무의 전 순서를 반복한다.. 귀속과 비귀속 두 가지 방법으로 두 갈래 나무의 전서를 두루 훑어본다. 역귀환의 교체는 순환을 빌리는 것이 틀림없다고 생각하기 쉽다. 그러나 우리가 이곳에서 두 갈래 나무를 옮길 때 사실은 컴파일러 내부의 창고를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.