递归二叉树的序列打印

来源:互联网 发布:淘宝优惠券佣金怎么算 编辑:程序博客网 时间:2024/06/03 19:29

请用递归方式实现二叉树的先序、中序和后序的遍历打印。

给定一个二叉树的根结点root,请依次返回二叉树的先序,中序和后续遍历(二维数组的形式)。

/*struct TreeNode {    int val;    struct TreeNode *left;    struct TreeNode *right;    TreeNode(int x) :            val(x), left(NULL), right(NULL) {    }};*/class TreeToSequence {public:    vector<vector<int> > convert(TreeNode* root) {        vector<int> temp;        vector<vector<int>> res;                preorder(root,temp);        res.push_back(temp);        temp.clear();                midorder(root,temp);        res.push_back(temp);        temp.clear();                postorder(root,temp);        res.push_back(temp);        temp.clear();                return res;    }    // 先序遍历    void preorder(TreeNode *root,vector<int> &temp){        if(root==NULL) return ;        temp.push_back(root->val);        preorder(root->left,temp);        preorder(root->right,temp);    }    // 中序遍历    void midorder(TreeNode *root,vector<int> &temp){        if(root==NULL) return ;        midorder(root->left,temp);        temp.push_back(root->val);        midorder(root->right,temp);    }    // 后序遍历    void postorder(TreeNode *root,vector<int> &temp){        if(root==NULL) return ;        postorder(root->left,temp);        postorder(root->right,temp);        temp.push_back(root->val);    }};


阅读全文
0 0
原创粉丝点击