当前位置: 首页 > news >正文

力扣144. 二叉树的前序遍历145. 二叉树的后序遍历94. 二叉树的中序遍历(递归版)

前序遍历

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    void getPreorderTraversal(TreeNode* root, vector<int>& result) {
        if(root == nullptr) return;

        result.push_back(root->val);
        getPreorderTraversal(root->left, result);
        getPreorderTraversal(root->right, result);
    }

    vector<int> preorderTraversal(TreeNode* root) {
        vector<int> result;
        getPreorderTraversal(root, result);

        return result;
    }
};

后序遍历

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    void getPostorderTraversal(TreeNode* root, vector<int>& result) {
        if(root == nullptr) return;

        getPostorderTraversal(root->left, result);
        getPostorderTraversal(root->right, result);
        result.push_back(root->val);
    }

    vector<int> postorderTraversal(TreeNode* root) {
        vector<int> result;
        getPostorderTraversal(root, result);

        return result;
    }
};

中序遍历

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    void getInorderTraversal(TreeNode* root, vector<int>& result) {
        if(root == nullptr) return;

        getInorderTraversal(root->left, result);
        result.push_back(root->val);
        getInorderTraversal(root->right, result);
    }

    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> result;
        getInorderTraversal(root, result);

        return result;
    }
};

相关文章:

  • 市盈率(P/E Ratio):理解股票价格与盈利的关系(中英双语)
  • 尚硅谷爬虫note008
  • 重新求职刷题力扣DAY15
  • 【机器学习第一期】决策树原理及实现步骤:含MATLAB/Python实现代码
  • 大模型常识:什么是大模型/大语言模型/LLM
  • 安卓携手电脑,畅享局域网手机投屏全屏新体验
  • CentOS7 离线安装 Postgresql 指南
  • Softing线上研讨会 | 自研还是购买——用于自动化产品的工业以太网
  • 阿波罗STM32F767 FreeRTOS扩展例程
  • 扩增子分析|基于R包ggClusterNet包进行生态网络分析—十种可视化布局包括igraph,Gephi和maptree
  • 最新VS code配置C/C++环境(tasks.json, launch.json,c_cpp_properties.json)及运行多个文件、配置Cmake
  • STM32的HAL库开发---单通道ADC采集实验
  • 业务架构、数据架构、应用架构和技术架构
  • DeepSeek与人工智能的结合:探索搜索技术的未来
  • LeetCode-680. 验证回文串 II
  • Web开发技术概述
  • gsoap实现webservice服务
  • 数据结构:算法的时间复杂度和空间复杂度
  • docker 安装 nacos 与配置持久化详解
  • 【Spring Boot】Spring AOP 快速上手指南:开启面向切面编程新旅程
  • 申伟强任上海申通地铁集团有限公司副总裁
  • 专访|金七猫奖得主:以非遗为舟,在现实题材中疗愈与成长
  • 历史缝隙里的人︱觑功名如画饼:盛世“做题家”的攀爬与坠落
  • 商务部:对原产于美国、欧盟、台湾地区和日本的进口共聚聚甲醛征收反倾销税
  • 香港特区政府强烈谴责美参议员恐吓国安人员
  • 圆桌丨全球化博弈与人工智能背景下,企业如何落地合规体系