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驱动自动安装和升级
国内开源镜像站点
阿里开源镜像站:https://opsx.alibaba.com/mirror 网易开源镜像站:http://mirrors.163.
40132 1
|
传感器 编解码 监控
微型打印机控制电路的设计(1)
微型打印机控制电路的设计(1)
753 0
微型打印机控制电路的设计(1)
|
资源调度 监控 JavaScript
3倍+提升,高德地图极致性能优化之路
伴随着高德地图APP近几年的高速发展,也面临到这些问题,从2019年开始,我们开启了一系列性能优化专项,对高德地图APP进行了深入性能分析和极致优化,取得比较显著的效果。在这个过程中总结了一系列优化思路和技术方案,希望对同样面临超级应用性能问题的你有所帮助。
|
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的具体步骤。
2640 36
多快好省,Qwen3混合部署模式引爆MCP
|
TensorFlow 算法框架/工具
Tensorflow学习笔记(二):各种tf类型的函数用法集合
这篇文章总结了TensorFlow中各种函数的用法,包括创建张量、设备管理、数据类型转换、随机数生成等基础知识。
601 0
|
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
|
监控 网络协议 物联网
IPv4与IPv6的区别及其对企业网络建设的影响
随着互联网的蓬勃发展,人们越来越需要IP地址,以实现和娱乐。目前广泛使用的IP地址协议有两种:IPv4和IPv6。本文将探讨这两种协议的区别,并分析它们对企业网络建设的影响。
|
网络协议 安全 Linux
Scapy:Python发包收包利器
Scapy:Python发包收包利器
818 0