二叉树前、中、后的遍历

144.二叉树的前序遍历
145.二叉树的后序遍历
94. 二叉树的中序遍历

关于二叉树的前中后序遍历,一般都是用递归

前序:中左右

中序:左中右

后序:左右中

中在前就是前序,中在中间就是中序,中在后就是后续

如何表示结点被遍历?只需要将该结点的值放入数组中存储即可

前序遍历代码:

cpp 复制代码
class Solution {
public:
    void traversal(TreeNode* cur, vector<int>& vec) {
        if(cur == NULL)
        {
            return ;
        }
        vec.push_back(cur ->val);
        traversal(cur ->left, vec);
        traversal(cur ->right, vec);


    }
    vector<int> preorderTraversal(TreeNode* root) {
            vector<int> result;
            traversal(root,result);
            return result;
    }
};

中序遍历代码:

cpp 复制代码
class Solution {
public:
    void rev(TreeNode* cur, vector<int>& vec)
    {
        if(cur == NULL) return;
        rev(cur ->left, vec);
        vec.push_back(cur ->val);
        rev(cur ->right,vec);
    }
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> result;
        rev(root,result);
        return result;
    }
};

后续遍历代码:

cpp 复制代码
class Solution {
public:
    void rev(TreeNode* cur,vector<int>& vec)
    {
        if(cur == NULL) return;
        rev(cur ->left, vec);
        rev(cur ->right, vec);
        vec.push_back(cur ->val);
    }



    vector<int> postorderTraversal(TreeNode* root) {
        vector<int> result;
        rev(root,result);
        return result;
    }
};
相关推荐
前端小白在前进9 小时前
力扣刷题:在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode
LBJ辉11 小时前
第 4 章 串
数据结构·考研
似水এ᭄往昔12 小时前
【C++】--封装红⿊树实现mymap和myset
开发语言·数据结构·c++·算法·stl
山楂树の13 小时前
搜索插入位置(二分查找)
数据结构·算法
Ka1Yan14 小时前
[二叉树] - 代码随想录:二叉树的统一迭代遍历
数据结构·算法·leetcode
Sheep Shaun14 小时前
二叉搜索树(下篇):删除、优化与应用
数据结构·c++·b树·算法
鱼鱼块14 小时前
二叉搜索树:让数据在有序中生长的智慧之树
javascript·数据结构·面试
jianfeng_zhu15 小时前
二叉树的中序线索化,并通过线索化后遍历二叉树
数据结构·链表
C雨后彩虹15 小时前
5G网络建设
java·数据结构·算法·华为·面试
酸菜牛肉汤面16 小时前
5、索引的数据结构(b+树,hash)
数据结构·b树·哈希算法