二叉树的前、中、后序遍历

来源:互联网 发布:易语言制作下载器源码 编辑:程序博客网 时间:2024/05/20 09:23

这里需要定义一个helper函数来实施递归调用,无法在原函数中递归调用时因为res是在原函数里定义的,而递归调用时不能每次都重新定义res容器,所以需要一个helper函数,把定义好的res容器通过引用传递进去。

以下的例子是后序遍历的,由于三种差不多,就不一一举例了。

代码:

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    vector<int> postorderTraversal(TreeNode *root) {        vector<int> res;        if(root==NULL)            return res;        helper(res,root);        return res;    }    void helper(vector<int> &vec,TreeNode *root){        if(root==NULL)            return;        helper(vec,root->left);        helper(vec,root->right);        vec.push_back(root->val);//前中后序取决于这句话的位置    }};
阅读全文
0 0
原创粉丝点击