后序遍历
问题描述:
给出一棵二叉树,返回其节点值的后序遍历。
样例
给出一棵二叉树 {1,#,2,3},
1
\
2
/
3
返回 [3,2,1]。
解题思路:
用递归算法按照后序遍历访问二叉树的结点,并把访问到的结点值存放到向量中。
代码实现:
class Solution {
/**
* @param root: The root of binary tree.
* @return: Postorder in vector which contains node values.
*/
public:
vector<int>ss;
vector<int> postorderTraversal(TreeNode *root) {
// write your code here
if(root!=NULL){
postorderTraversal(root->left);
postorderTraversal(root->right);
ss.push_back(root->val);
}
return ss;
}
};
A题思路:
根据前序遍历和后序遍历的定义,理解了前序遍历的算法,后序遍历只需改变一下代码的顺序即可。