leetcode 145. Binary Tree Postorder Traversal

来源:互联网 发布:手立视高清网络摄像机 编辑:程序博客网 时间:2024/04/28 13:11

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) {vector<int>re;if (root == NULL)return re;vector<pair<TreeNode*,bool>>que;que.push_back(pair<TreeNode*, bool>(root,false));//bool标记节点的右孩子是否进入过队列while (!que.empty()){TreeNode*n = que.back().first;if (!que.back().second){que.back().second = true;if (n->right != NULL)que.push_back(pair<TreeNode*, bool>(n->right, false));if (n->left != NULL)que.push_back(pair<TreeNode*, bool>(n->left,false));if (n->left == NULL&&n->right == NULL){que.pop_back(); re.push_back(n->val);}}else{que.pop_back();re.push_back(n->val);}}return re;}};

accepted

0 0
原创粉丝点击