<span style="font-size:14px;">class Solution {
public:
vector postorderTraversal(TreeNode root){
vector ret; map<TreeNode, int> visited;
if (root == NULL) { return ret; }
TreeNode *cur = root;
stack<TreeNode *> st;
st.push(cur);
while (st.size() > 0)
{
cur = st.top();
if ((cur->left == NULL || visited.count(cur->left) > 0)
&& (cur->right == NULL || visited.count(cur->right) >0))
{
ret.push_back(cur->val);
st.pop();
visited[cur] = 1;
continue;
}
if (cur->right != NULL)
st.push(cur->right);
if (cur->left != NULL)
st.push(cur->left);
}
}
};</span>
后序非递归的简洁实现
最新推荐文章于 2023-11-22 20:43:33 发布