后序非递归的简洁实现

来源:互联网 发布:unity3d 优化 编辑:程序博客网 时间:2024/05/21 09:17
<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>

0 0
原创粉丝点击