68.二叉树的后序遍历

来源:互联网 发布:诺基亚手机下载软件 编辑:程序博客网 时间:2024/06/05 15:17

描述:给出一棵二叉树,返回其节点值的后序遍历。

样例:

给出一棵二叉树 {1,#,2,3}

   1    \     2    /   3

 返回 [3,2,1]

标签:递归 二叉树 遍历

思路:

首先遍历左子树,然后遍历右子树,最后访问根结点。在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根节点。 

若二叉树为空则结束返回,否则:(1)后序遍历左子树。(2)后序遍历右子树。(3)访问根结点。

 代码:

/**
 * Definition of TreeNode:
 * class TreeNode {
 * public:
 *     int val;
 *     TreeNode *left, *right;
 *     TreeNode(int val) {
 *         this->val = val;
 *         this->left = this->right = NULL;
 *     }
 * }
 */
class Solution {
public:
    vector<int> v;
    vector<int> postorderTraversal(TreeNode * root) {
        if(root != NULL) {
            postorderTraversal(root->left);
            postorderTraversal(root->right);
            v.push_back(root->val);
        }
        return v;
    }
};

原创粉丝点击