7_2递归二叉树序列打印

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

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

/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};*/

class TreeToSequence {
public:
    void pre(TreeNode* root, vector<int>& result)
    {
        if(NULL == root){
            return;
        }
        result.push_back(root->val);
        pre(root->left, result);
        pre(root->right, result);
    }
    void mid(TreeNode* root, vector<int>& result)
    {
        if(NULL == root){
            return;
        }
        mid(root->left, result);
        result.push_back(root->val);
        mid(root->right, result);
    }
    void post(TreeNode* root, vector<int>& result)
    {
        if(NULL == root){
            return;
        }
        post(root->left, result);
        post(root->right, result);
        result.push_back(root->val);
    }
    vector<vector<int> > convert(TreeNode* root) {
        // write code here
        vector<vector<int>> res(3);
        pre(root, res[0]);
        mid(root, res[1]);
        post(root, res[2]);
        return res;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据结构和算法--二叉树的实现 几种二叉树 1、二叉树 和普通的树相比,二叉树有如下特点: 每个结点最多只有两棵子...
    sunhaiyu阅读 6,563评论 0 14
  • 四、树与二叉树 1. 二叉树的顺序存储结构 二叉树的顺序存储就是用数组存储二叉树。二叉树的每个结点在顺序存储中都有...
    MinoyJet阅读 1,616评论 0 7
  • 1.树(Tree): 树是 n(n>=0) 个结点的有限集。当 n=0 时称为空树。在任意一颗非空树中:有且仅有一...
    ql2012jz阅读 1,084评论 0 3
  • 概述# 二叉树是一种特殊的树型结构,它由结点的有限集合构成。 二叉树是由唯一的起始结点引出的结点集合。这个起始节点...
    长胖的鱼阅读 1,164评论 0 8
  • 数据结构与算法--二叉查找树 上节中学习了基于链表的顺序查找和有序数组的二分查找,其中前者在插入删除时更有优势,而...
    sunhaiyu阅读 1,958评论 0 9