day18 二叉树遍历总结

news/2024/11/28 7:50:37/

二叉树遍历总结

遍历二叉树是指按照一定的顺序遍历二叉树中的每个节点。常见的遍历方式有前序遍历、中序遍历和后序遍历。以下是它们的具体实现:

  1. 前序遍历:按照“根节点-左子树-右子树”的顺序进行遍历。具体实现的步骤如下:

    • 访问根节点
    • 对根节点的左子树进行前序遍历
    • 对根节点的右子树进行前序遍历

    前序遍历的递归实现代码如下:

    void preorder(TreeNode* root) {if (root == nullptr) return;visit(root);preorder(root->left);preorder(root->right);
    }
    
  2. 中序遍历:按照“左子树-根节点-右子树”的顺序进行遍历。具体实现的步骤如下:

    • 对根节点的左子树进行中序遍历
    • 访问根节点
    • 对根节点的右子树进行中序遍历

    中序遍历的递归实现代码如下:

    void inorder(TreeNode* root) {if (root == nullptr) return;inorder(root->left);visit(root);inorder(root->right);
    }
    
  3. 后序遍历:按照“左子树-右子树-根节点”的顺序进行遍历。具体实现的步骤如下:

    • 对根节点的左子树进行后序遍历
    • 对根节点的右子树进行后序遍历
    • 访问根节点

    后序遍历的递归实现代码如下:

    void postorder(TreeNode* root) {if (root == nullptr) return;postorder(root->left);postorder(root->right);visit(root);
    }
    

以上是二叉树的三种遍历方式的递归实现。当然,这些方法也可以通过非递归的方式实现,例如使用栈来模拟遍历过程。


http://www.ppmy.cn/news/39277.html

相关文章

银行数字化转型导师坚鹏:金融大数据分析与应用能力提升实战

金融大数据分析与应用能力提升实战课程背景: 数字化背景下,很多机构存在以下问题:不清楚大数据思维如何建立?不清楚金融大数据分析方法?不了解大数据应用成功案例? 课程特色:有实战案例…

go调用docker远程API(二)-docker API 的容器操作

文章目录1 获取容器列表2 查看指定容器信息3. 查看容器日志4 创建容器4.1 简单使用4.1.1 语法4.1.2 完整示例4.2 端口映射4.2.1 语法4.2.2 完整示例4.3 挂载本机目录/文件4.3.1 语法4.3.2 完整代码5. 启动容器6 停止容器7 删除(已停止的)容器8 进入容器执…

网络应用层

目录应用层网络版计算器服务器守护进程化HTTP协议URLurlencode和urldecodeHTTP协议格式HTTP的方法HTTP的状态码HTTP常见HeaderGET/POST重定向会话管理长连接与短链接简易HTTP代码HTTPS应用层 应用层的目的是向应用程序提供网络接口,直接向用户提供服务。应用协议要…

SQL SERVER数据库生成数据字典并且导出方法

SQL SERVER数据库生成数据字典并且导出方法打开SQL SERVER 2014找到你所需要建立数据字典的数据库在代码区输入如下SQL语句点击运行,导出或者带标题复制出来打开SQL SERVER 2014找到你所需要建立数据字典的数据库 右键→点击 新建查询 在代码区输入如下SQL语句 S…

类的加载过程-过程二:Linking阶段

链接过程之验证阶段(Verification) 当类加载到系统后,就开始链接操作,验证是链接操作的第一步。 它的目的是保证加载的字节码是合法、合理并符合规范的。 验证的步骤比较复杂,实际要验证的项目也很繁多,大体上Java虚拟机需要做…

使用ControlNet 控制 Stable Diffusion

本文将要介绍整合HuggingFace的diffusers 包和ControlNet调节生成文本到图像,可以更好地控制文本到图像的生成 ControlNet是一种通过添加额外条件来控制扩散模型的神经网络结构。它提供了一种增强稳定扩散的方法,在文本到图像生成过程中使用条件输入&…

面向对象编程(基础)9:封装性(encapsulation)

目录 9.1 为什么需要封装? 而“高内聚,低耦合”的体现之一: 9.2 何为封装性? 9.3 Java如何实现数据封装 9.4 封装性的体现 9.4.1 成员变量/属性私有化 实现步骤: 成员变量封装的好处: 9.4.2 私有化…

IEArch-卷积神经网络

一、感受 ​ 这次作业的神经网络是比上一次作业复杂的,上一次作业是“多层感知机(MLP)”,这一次的作业是“卷积神经网络(CNN)”。运算从原来的矩阵乘法变成了卷积,网络结构也更加复杂&#xff…