二叉树前、中、后的遍历

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;
    }
};
相关推荐
1nullptr28 分钟前
三次翻转实现数组元素的旋转
数据结构
TT哇33 分钟前
【数据结构练习题】链表与LinkedList
java·数据结构·链表
A懿轩A1 小时前
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·栈和队列
1 9 J2 小时前
数据结构 C/C++(实验五:图)
c语言·数据结构·c++·学习·算法
汝即来归2 小时前
选择排序和冒泡排序;MySQL架构
数据结构·算法·排序算法
aaasssdddd965 小时前
C++的封装(十四):《设计模式》这本书
数据结构·c++·设计模式
芳菲菲其弥章5 小时前
数据结构经典算法总复习(下卷)
数据结构·算法
yyyyyyykk6 小时前
数据结构--链表
数据结构·链表
我是一只来自东方的鸭.6 小时前
1. K11504 天平[Not so Mobile,UVa839]
数据结构·b树·算法
武昌库里写JAVA6 小时前
使用React Strict DOM改善React生态系统
数据结构·vue.js·spring boot·算法·课程设计