二叉树的后序遍历

来源:互联网 发布:乾坤nb买卖源码 编辑:程序博客网 时间:2024/06/06 00:41

一、问题描述

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

样例

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

   1    \     2    /   3

返回 [3,2,1]

二、解题思路

     定义一个vector容器来存储后序遍历的节点,运用后序遍历的方式即先左子树后右子树再根的方式进行依次遍历存储即可。

三、我的代码

class Solution {
    /**
     * @param root: The root of binary tree.
     * @return: Postorder in vector which contains node values.
     */
public:
    vector<int> postorderTraversal(TreeNode *root) {
        vector<int> T;
        postorder(T,root);
        return T;
    }
    void postorder(vector<int>&T,TreeNode *root)
    {
        if(root==NULL)  return;
        else
        {
            postorder(T,root->left);
            postorder(T,root->right);
            T.push_back(root->val);
        }
    }
};

四、我的感想

     和中序遍历前序遍历的思路差不多,定义一个vector容器存储,然后依次遍历插入即可。做了这三道类似的题,相当于复习了vector容器的使用了。

0 0
原创粉丝点击