【LeetCode】Binary Tree Postorder Traversal

来源:互联网 发布:淘宝德国代购有假货吗 编辑:程序博客网 时间:2024/05/01 06:30
/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector<int> postorderTraversal(TreeNode *root) {       stack<TreeNode*> s;         vector<int> result;    TreeNode *cur;                      //当前结点       TreeNode *pre=NULL;       //前一次访问的结点       if(root)    {    s.push(root);    }    while(!s.empty())      {          cur=s.top();          if((cur->left==NULL&&cur->right==NULL)||             (pre!=NULL&&(pre==cur->left||pre==cur->right)))          {          //    cout<<cur->data;  //如果当前结点没有孩子结点或者孩子节点都已被访问过                 result.push_back(cur->val);              s.pop();              pre=cur;           }          else          {              if(cur->right!=NULL)                  s.push(cur->right);              if(cur->left!=NULL)                      s.push(cur->left);          }      }      return result;    }};

0 0
原创粉丝点击