二叉树的后序遍历

来源:互联网 发布:ps淘宝图片制作教程 编辑:程序博客网 时间:2024/04/27 13:42

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

2.思路:例如样例

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

   1    \     2    /   3

返回 [3,2,1]

在函数外建立一个向量用于储存遍历的节点,最后返回这个向量即可得到二叉树节点值的后序遍历。后序遍历是先访问根的左子树再访问根再访问右子树。

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 {    /**     * @param root: The root of binary tree.     * @return: Postorder in vector which contains node values.     */public:    std::vector<int> v;    vector<int> postorderTraversal(TreeNode *root) {        // write your code here        if(root!=NULL)        {  postorderTraversal(root->left);           postorderTraversal(root->right);           v.push_back(root->val);        }        return v;    }};


 

4.感想:并不像前序遍历和中序遍历又单独写了一个遍历函数,而是直接在给定的函数里实现了遍历的功能,并且通过这个题目我还学到 if(root) 就相当于 if(root!=NULL)~
0 0
原创粉丝点击