6.1二叉树的递归遍历

简介: 6.1二叉树的递归遍历

二叉树的递归遍历包括:前、后、中序遍历的递归写法。

一、方法论

递归算法三要素:

  • 确定递归函数的参数和返回值
void traversal(TreeNode* cur, vector<int>& vec)//当前指针和数组
  • 确定终止条件
if (cur == NULL) return;
  • 确定单层递归逻辑

前序遍历是中->左->右的顺序,所以单层递归的逻辑就是先取中节点的数值,在处理左子树和右子树

vec.push_back(cur->val);//中
traversal(cur->left,vec);//左
traversal(cur->right,vec);//右

二、前序遍历完整代码

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;//result是数组
            traversal(root,result);
            return result;
        }
}

三、中序遍历完整代码

class Solution{
    public:
      void traversal(TreeNode* cur,vector<int>& vec)
        {
            if(cur==NULL) return;
      traversal(cur->left,vec);//左
            vec.push_back(cur->val);//中
      traversal(cur->right,vec);//右
        }
    
      vector<int> preorderTraversal(TreeNode * root)
        {
            vector<int> result;//result是数组
            traversal(root,result);
            return result;
        }
}

四、后序遍历完整代码

class Solution{
    public:
      void traversal(TreeNode* cur,vector<int>& vec)
        {
            if(cur==NULL) return;
      traversal(cur->left,vec);//左
      traversal(cur->right,vec);//右
             vec.push_back(cur->val);//中
        }
    
      vector<int> preorderTraversal(TreeNode * root)
        {
            vector<int> result;//result是数组
            traversal(root,result);
            return result;
        }
}

五、题型

目录
相关文章
|
弹性计算 运维 监控
GPU实例使用--vGPU驱动自动安装和升级
为了适配最新的渲染软件,以及驱动稳定性的提升,vGPU实例的驱动需要定期进行升级,因为使用vgpu的客户多数为渲染和云游戏等业务场景,对vGPU驱动的快速升级和批量自动化要求比较高。
GPU实例使用--vGPU驱动自动安装和升级
|
传感器 编解码 监控
微型打印机控制电路的设计(1)
微型打印机控制电路的设计(1)
753 0
微型打印机控制电路的设计(1)
|
8月前
|
人工智能 JSON 自然语言处理
多快好省,Qwen3混合部署模式引爆MCP
本文介绍了MCP(Model Context Protocol)与Qwen3模型的结合应用。MCP通过统一协议让AI模型连接各种工具和数据源,类似AI世界的“USB-C”接口。文中详细解析了MCP架构,包括Host、Client和Server三个核心组件,并说明了模型如何智能选择工具及工具执行反馈机制。Qwen3作为新一代通义千问模型,采用混合专家架构,具备235B参数但仅需激活22B,支持快速与深度思考模式,多语言处理能力覆盖119种语言。文章还展示了Qwen3的本地部署流程,以及开发和调试MCP Server与Client的具体步骤。
2642 36
多快好省,Qwen3混合部署模式引爆MCP
|
弹性计算 运维 安全
如何使用OOS有效进行云上自动化运维
阿里云弹性计算团队十三位产品专家和技术专家共同分享云上运维深度实践,详细阐述如何利用CloudOps工具实现运维提效、弹性降本。
134727 220
|
TensorFlow 算法框架/工具
Tensorflow学习笔记(二):各种tf类型的函数用法集合
这篇文章总结了TensorFlow中各种函数的用法,包括创建张量、设备管理、数据类型转换、随机数生成等基础知识。
602 0
|
前端开发 小程序
微信小程序系列——无缝引入CSS或者WXML文件
微信小程序系列——无缝引入CSS或者WXML文件
|
API Python JSON
使用django创建简单restful应用接口的步骤
【6月更文挑战第2天】本文简介使用Django创建API服务涉及安装djangorestframework,创建api应用,定义URL路由,编写视图和序列化器。这个过程展示了如何用Django Rest Framework构建JSON格式的API。
244 2
|
Java Spring
nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException(Spring循环依赖问题)
nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException(Spring循环依赖问题)
479 0
|
测试技术 索引 Python
Python enumerate函数
Python enumerate函数
Python enumerate函数
|
监控 网络协议 物联网
IPv4与IPv6的区别及其对企业网络建设的影响
随着互联网的蓬勃发展,人们越来越需要IP地址,以实现和娱乐。目前广泛使用的IP地址协议有两种:IPv4和IPv6。本文将探讨这两种协议的区别,并分析它们对企业网络建设的影响。