C语言进阶练习二叉树的递归遍历

C语言进阶练习二叉树的递归遍历的完整攻略如下:

一、前序遍历

前序遍历指的是先遍历根节点,再遍历左子树,最后遍历右子树。递归实现前序遍历的代码如下:

void preorderTraversal(TreeNode* root) {
    if(root == NULL) return;
    printf("%d ", root->val); // 先输出根节点的值
    preorderTraversal(root->left); // 递归遍历左子树
    preorderTraversal(root->right); // 递归遍历右子树
}

例如,对于如下的二叉树,其前序遍历结果应该为:1 2 4 5 3 6 7

     1
   /   \
  2     3
 / \   / \
4   5 6   7

二、中序遍历

中序遍历指的是先遍历左子树,再遍历根节点,最后遍历右子树。递归实现中序遍历的代码如下:

void inorderTraversal(TreeNode* root) {
    if(root == NULL) return;
    inorderTraversal(root->left); // 递归遍历左子树
    printf("%d ", root->val); // 输出根节点的值
    inorderTraversal(root->right); // 递归遍历右子树
}

例如,对于如下的二叉树,其中序遍历结果应该为:4 2 5 1 6 3 7

     1
   /   \
  2     3
 / \   / \
4   5 6   7

三、后序遍历

后序遍历指的是先遍历左子树,再遍历右子树,最后遍历根节点。递归实现后序遍历的代码如下:

void postorderTraversal(TreeNode* root) {
    if(root == NULL) return;
    postorderTraversal(root->left); // 递归遍历左子树
    postorderTraversal(root->right); // 递归遍历右子树
    printf("%d ", root->val); // 输出根节点的值
}

例如,对于如下的二叉树,其后序遍历结果应该为:4 5 2 6 7 3 1

     1
   /   \
  2     3
 / \   / \
4   5 6   7

以上就是二叉树的递归遍历的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言进阶练习二叉树的递归遍历 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Win10更新四月版17134.165累积更新补丁KB4338819推送(附更新修复内容)

    Win10更新四月版17134.165累积更新补丁KB4338819推送攻略 简介 Win10更新四月版17134.165累积更新补丁KB4338819是微软推送的一个重要更新补丁,旨在修复系统中的一些问题和漏洞。本攻略将详细介绍如何安装和应用该补丁,并提供两个示例说明。 步骤 步骤一:检查系统版本 首先,确保你的系统版本是Win10更新四月版17134.1…

    other 2023年8月5日
    00
  • vue-cli4.x创建企业级项目的方法步骤

    下面是详细讲解“vue-cli4.x创建企业级项目的方法步骤”的完整攻略。 步骤一:安装Node.js和Vue.js 首先,我们需要在本地电脑上安装Node.js。我们可以在官网上下载符合自己系统的安装包并安装完成。完成Node.js的安装后,我们需要使用npm命令安装Vue.js。安装Vue.js的方法如下: npm install vue 步骤二:安装V…

    other 2023年6月27日
    00
  • JS精髓原型链继承及构造函数继承问题纠正

    下面是关于“JS精髓原型链继承及构造函数继承问题纠正”的完整攻略。 原型链继承 在JavaScript中,对象可以通过原型链进行继承。原型链是一个对象到另一个对象的链,每个对象都有一个指向它的原型对象的引用。 实现原型链继承 示例代码如下: function Animal() { this.name = ‘animal’; this.showName = f…

    other 2023年6月26日
    00
  • Centos环境下Postgresql 安装配置及环境变量配置技巧

    下面是 Centos 环境下 Postgresql 安装配置及环境变量配置技巧的完整攻略: 安装 Postgresql 步骤 1:安装 Postgresql 在控制台输入以下命令来安装 Postgresql: yum install postgresql-server postgresql-contrib 步骤 2:初始化 Postgresql 初始化 Po…

    other 2023年6月27日
    00
  • 人人开源之代码生成器(renren-generator)

    当然,我可以为您提供详细的“人人开源之代码生成器(renren-generator)”的完整攻略,包括两个示例说明。 人人开源之代码生成器(renren-generator)的完整攻略 renren-generator是一款基于MyBatis Plus和Spring Boot的代码生成器,可以快速生成Java后端代码。在本教程中,我们将介绍renren-ge…

    other 2023年5月7日
    00
  • dos之bat批处理文件语法介绍

    DOS之BAT批处理文件语法介绍 什么是BAT文件? BAT是Batch files的缩写,也就是批处理文件。BAT文件是DOS或Windows系统批处理脚本文件,可以通过命令行运行,也可以直接双击运行。 BAT文件的语法基础 注释 在BAT文件中,可以使用REM作为注释标识符。任何以REM开头的文本,都被视为注释,不会被执行。 示例: REM 这是注释 执…

    other 2023年6月26日
    00
  • HTTP高并发调优小记

    HTTP高并发调优小记的完整攻略 HTTP高并发调优是一个非常重要的话题,它涉及到了Web应用程序的性能和可伸缩性。下面是HTTP高并发调优的完整攻略,含两个示例说明。 步骤 使用缓存:使用缓存可以大大减少Web应用程序的负载。例如,可以使用存来缓存静态文件、数据库查询结果等。这样可以减少对后端服务器的请求,从而提高Web应用程序的性能和伸缩性。 使用负载均…

    other 2023年5月6日
    00
  • 详解SpringBoot统一响应体解决方案

    SpringBoot统一响应体解决方案简介 在SpringBoot应用中,当控制器方法处理完请求后,需要把处理的结果以一定的格式返回给请求方。但是不同的请求可能需要返回不同的格式,比如JSON、XML等等,这就需要我们写很多重复的代码。为了解决这个问题,我们可以使用SpringBoot的统一响应体解决方案。它提供了一个自定义的响应体格式,将所有的响应体都统一…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部