二叉树前、中、后的遍历

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;
    }
};
相关推荐
_Chipen31 分钟前
3363. 最多可收集的水果数目
数据结构·算法
董莉影4 小时前
学习嵌入式第二十二天
数据结构·学习·算法·链表
落羽的落羽5 小时前
【C++】哈希表原理与实现详解
数据结构·c++
GawynKing5 小时前
图论(1):图数据结构
数据结构·算法·图论·图形理论
爱吃生蚝的于勒6 小时前
一文学会c++继承 组合
java·c语言·开发语言·数据结构·c++·算法·蓝桥杯
zgc12453676 小时前
Linux学习-数据结构(链表)
linux·开发语言·数据结构·vscode·链表
小指纹15 小时前
河南萌新联赛2025第(四)场【补题】
数据结构·c++·算法·macos·objective-c·cocoa·图论
Y40900115 小时前
List、ArrayList 与顺序表
数据结构·笔记·list
设计师小聂!17 小时前
力扣热题100------136.只出现一次的数字
数据结构·算法·leetcode
flashlight_hi18 小时前
LeetCode 分类刷题:2824. 统计和小于目标的下标对数目
javascript·数据结构·算法·leetcode