题目描写叙述:
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]
.
代码:
vector<int> Solution::postorderTraversal(TreeNode *root) { vector<int> postorderSequence; stack<TreeNode*> treeNodeStack; TreeNode * node = root; if(node == NULL) return postorderSequence; postorderSequence.push_back(node->val); if(node->left) treeNodeStack.push(node->left); if(node->right) treeNodeStack.push(node->right); while(!treeNodeStack.empty()) { node = treeNodeStack.top(); treeNodeStack.pop(); postorderSequence.push_back(node->val); if(node->left) treeNodeStack.push(node->left); if(node->right) treeNodeStack.push(node->right); } reverse(postorderSequence.begin(),postorderSequence.end()); return postorderSequence; }