LeetCode Binary Tree Postorder Traversal(두 갈래 나무의 뒷순서가 비귀속으로 반복됨)
Given a binary tree, return the postorder traversal of its nodes' values.
For example: Given binary tree
{1,#,2,3}
, 1
\
2
/
3
return
[3,2,1]
. 창고로 귀속 과정을 시뮬레이션하면 뒷순서는 다른 두 개의 역행 방식보다 약간 복잡하고 좌우 하위 노드가 역행 후 루트에 접근하는 것을 판단해야 한다.
코드:
class Solution {
public:
vector<int> postorderTraversal(TreeNode *root) {
stack<TreeNode*> st;
vector<int> ret;
if(root == NULL)
return ret;
TreeNode* cur = NULL;
TreeNode* pre = NULL;
st.push(root);
while(!st.empty())
{
cur = st.top();
if((cur->left == NULL && cur->right == NULL) ||
(pre != NULL && (cur->left == pre || cur->right == pre)))// ,
{
ret.push_back(cur->val);
st.pop();
pre = cur;
}
else
{
if(cur->right != NULL)
st.push(cur->right);
if(cur->left != NULL)
st.push(cur->left);
}
}
return ret;
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 문자열 입력으로 모든 유효한 IP 주소 생성(LeetCode 93번 문제)이 문제의 공식 난이도는 Medium으로 좋아요 1296, 반대 505, 통과율 35.4%를 눌렀다.각 항목의 지표로 말하자면 보기에는 약간 규범에 맞는 것 같지만, 실제로도 확실히 그렇다.이 문제의 해법과 의도는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.