题目描写叙述:
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 Solution::postorderTraversal(TreeNode *root){ vector postorderSequence; stacktreeNodeStack; 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;}