【牛客刷题实战】二叉树遍历

大家好,我是小卡皮巴拉
文章目录
目录
牛客题目: 二叉树遍历
题目描述
输入描述:
输出描述:
示例1
解题思路
问题理解
算法选择
具体思路
解题要点
完整代码(C语言)
兄弟们共勉 !!!
每篇前言
博客主页:小卡皮巴拉
咱的口号:🌹小比特,大梦想🌹
作者请求:由于博主水平有限,难免会有错误和不准之处,我也非常渴望知道这些错误,恳请大佬们批评斧正。
牛客题目: 二叉树遍历
原题链接:二叉树遍历
题目描述
编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。
输入描述:
输入包括1行字符串,长度不超过100。
输出描述:
可能有多组测试数据,对于每组数据, 输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。 每个输出结果占一行。
示例1
输入:
abc##de#g##f###
复制输出:
c b e g d f a
解题思路
问题理解
题目要求从用户输入的一串先序遍历字符串中构建一个二叉树,其中“#”字符代表空节点。构建完成后,需要对这棵二叉树进行中序遍历,并输出遍历结果。
算法选择
使用递归的方法来构建二叉树,并在构建过程中利用指针索引来遍历字符串。然后,使用另一个递归函数对中序遍历进行输出。
具体思路
定义一个二叉树节点的结构体
BinaryTreeNode。编写一个函数
buyNode来创建新的二叉树节点。编写一个递归函数
creatTree,根据先序遍历字符串和当前处理的字符索引来构建二叉树。编写一个递归函数
InOrder,对构建好的二叉树进行中序遍历,并输出结果。在主函数中,读取输入字符串,调用
creatTree函数构建二叉树,然后调用InOrder函数输出结果。
解题要点
定义二叉树节点:使用结构体
BinaryTreeNode定义二叉树节点。创建节点:使用
buyNode函数根据字符创建新节点。构建二叉树:使用
creatTree函数递归地根据先序遍历字符串和索引构建二叉树。中序遍历:使用
InOrder函数递归地对二叉树进行中序遍历,并输出遍历结果。处理输入:在主函数中读取输入字符串,并调用相关函数进行构建和遍历。
完整代码(C语言)
#include <stdio.h> #include <stdlib.h>typedef struct BinaryTreeNode {char data;struct BinaryTreeNode* left;struct BinaryTreeNode* right; }BTNode;BTNode* buyNode(char ch) {BTNode* node = (BTNode*)malloc(sizeof(BTNode));node->data = ch;node->left = node->right = NULL;return node; } BTNode* creatTree(char* arr,int* pi) {if(arr[*pi] == '#'){++(*pi);return NULL;}BTNode* root = buyNode(arr[*pi]);++(*pi);root->left = creatTree(arr, pi);root->right = creatTree(arr, pi);return root; } void InOrder(BTNode* root) {if(root == NULL){return;}InOrder(root->left);printf("%c ",root->data);InOrder(root->right); } int main() {char arr[100];scanf("%s",arr);//根据数组中的内容创建二叉树int i = 0;BTNode* root = creatTree(arr,&i);InOrder(root);return 0; }
兄弟们共勉 !!!
码字不易,求个三连
抱拳了兄弟们!

相关文章:
【牛客刷题实战】二叉树遍历
大家好,我是小卡皮巴拉 文章目录 目录 牛客题目: 二叉树遍历 题目描述 输入描述: 输出描述: 示例1 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码(C语言) 兄弟们共勉 !&…...
消息队列mq有哪些缺点?
大家好,我是锋哥。今天分享关于【消息队列mq有哪些缺点?】面试题?希望对大家有帮助; 消息队列mq有哪些缺点? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 消息队列(MQ)的缺点 消…...
【CENet】多模态情感分析的跨模态增强网络
在MSA领域,文本的准确度远远高于音频和视觉,如果文本能达到90%,那么音频和视觉的准确度只有60%~80%,但是过往研究很少针对情感分析的背景下去提高音频和视频的准确度。 abstract: 多模态情感分析(MSA&…...
动态代理:面向接口编程,屏蔽RPC处理过程
RPC远程调用 使用 RPC 时,一般的做法是先找服务提供方要接口,通过 Maven把接口依赖到项目中。在编写业务逻辑的时候,如果要调用提供方的接口,只需要通过依赖注入的方式把接口注入到项目中,然后在代码里面直接调用接口…...
HTTP 405 Method Not Allowed:解析与解决
HTTP 405 Method Not Allowed:解析与解决 引言 在Web开发中,HTTP状态码是服务器与客户端之间通信的重要组成部分。当我们使用Python进行网络请求时,经常会遇到各种HTTP状态码。其中,HTTP 405 “Method Not Allowed” 错误是一个…...
推荐一款CAD/CAM设计辅助工具:Mastercam
Mastercam是一款非常好用的软件,我们的这款软件是由美国CNC软件公司开发,集平面制图、三维设计、曲面设计、数 控编程、刀具处理等多项强大功能于一体。软件的使用过程具有非常直观的特点,用户可以很方便地对自己的作品进行设计。 Mastercam不…...
位运算刷题记录
1. 使两个整数相等的位更改次数 3226. 使两个整数相等的位更改次数 给你两个正整数 n 和 k。 你可以选择 n 的 二进制表示 中任意一个值为 1 的位,并将其改为 0。 返回使得 n 等于 k 所需要的更改次数。如果无法实现,返回 -1。 class Solution {pub…...
爬虫技术——小白入狱案例
知孤云出岫 目录 1. 案例概述2. 案例需求分析3. 实现步骤Step 1: 环境准备Step 2: 分析百度图片URL请求规律Step 3: 编写爬虫代码代码解析 4. 运行代码5. 注意事项6. 案例总结 要实现大批量爬取百度图片,可以使用Python编写一个网络爬虫,通过发送HTTP请求…...
vue 果蔬识别系统百度AI识别vue+springboot java开发、elementui+ echarts+ vant开发
编号:R03-果蔬识别系统 简介:vuespringboot百度AI实现的果蔬识别系统 版本:2025版 视频介绍: vuespringboot百度AI实现的果蔬识别系统前后端java开发,百度识别,带H5移动端,mysql数据库可视化 1 …...
全新更新!Fastreport.NET 2025.1版本发布,提升报告开发体验
在.NET 2025.1版本中,我们带来了巨大的期待功能,进一步简化了报告模板的开发过程。新功能包括通过添加链接报告页面、异步报告准备、HTML段落旋转、代码文本编辑器中的文本搜索、WebReport图像导出等,大幅提升用户体验。 FastReport .NET 是…...
信息学科平台系统设计与实现:Spring Boot技术手册
5系统详细实现 5.1 用户信息管理 基于保密信息学科平台系统的系统管理员可以对用户信息查询。具体界面的展示如图5.1所示。 图5.1 用户信息管理界面 5.2 教师信息管理 管理员可以对教师信息进行查下和删除。具体界面如图5.2所示。 图5.2 教师信息界面 5.3 学科动态管理 管理…...
conda下jupyterlab安装问题以及交互绘图问题记录
安装 1. 直接conda install jupyterlab就好,只要在base环境下安装就行,可以在任意环境下执行jupyter lab启动。 2. 打开jupyter lab后显示Could not determine jupyterlab build status without nodejs,可以执行conda install nodejs安装no…...
尚硅谷react教程_扩展_setState更新状态的2种写法
1.setState setState更新状态的2种写法(1).setState(stateChange,[callback])----对象式的setState1.stateChange为状态改变对象(该对象可以体现出状态的更改)2.callback是可选的回调函数,它在状态更新完毕、界面也更新…...
C语言编写的自动取款机模拟程序
#include〈stdio。h> #include<string。h> #include <stdio.h> #include〈stdlib.h〉 #include〈direct.h〉 #include<io.h> #include 〈errno。h> /********************************************************…...
【常用数据结构】开发中常用的数据结构?
开发中常用的数据结构包括数组、链表、栈、队列、树、图、堆和散列表(哈希表)。这些数据结构在软件开发中有着广泛的应用,并且各自具有独特的特点和用途。 数组 数组是最基本的数据结构之一,用于在内存中连续存储多个元素。数…...
OCC 点云
OCC的基础知识可能还是要系统学习一下,部分导入的模型面类型是很多面都是GeomAbs_BSplineSurface,最终获取参数都要拟合一下,拟合后的生成的面对象没有大小,比如平面只有矢量(大小没有思路) 圆柱拟合面没有…...
方法重写与方法重载
1. 方法重载与方法重写的定义 方法重写(Overriding) 方法重写(Overriding)是指在子类中重新定义与父类中相同的方法。此操作允许子类提供特定的实现,以替代父类的实现。方法重写是实现多态性(Polymorphis…...
Vue3实现地球上加载柱体
最终效果为上图。 实现该技术,需要一些技术,我分别罗列一下: canvas:需要使用canvas根据json来绘制地球,不懂的可以看这篇canvas绘制地球 threejs:需要会使用threejs,这里并没有使用shader&am…...
OpenGL入门003——使用Factory设计模式简化渲染流程
前面两节已经学会了如何使用opengl创建窗口并绘制三角形,我们可以看出有些步骤是固定的,而且都写在main.cpp,这一节我们将了解如何使用Factroy设计模型。将模型渲染逻辑封装在一个单独的类中,简化开发流程,且提高代码复…...
01_AI编程案例展示:借助AI轻松爬取海量网盘链接
爬虫案例展示 今天,我们将展示如何利用AI快速开发一个网络爬虫, 使用的工具是Python和Claude 3.5 Sonnet(国内可用豆包替代) 我们的目标是爬取panhub.fun网站上的夸克网盘链接, 即使你是编程新手,也可以轻松完成这样的任务。 案例1-批量爬取panhub网盘整合包 下…...
1951-2025年中国1km月平均气温逐年年内季节波动幅度数据集
中国1000米分辨率月平均气温数据集(1951-2025)提供了长时间序列、规则网格的气象背景信息,为开展气候变化分析和区域比较研究提供了基础数据支撑。针对原始月尺度序列直接使用不够便捷的问题,需要进一步形成具有明确主题和统一格式…...
为什么你的Perplexity图标总返回404?深度逆向其图标CDN路由算法(附Python自动化探测脚本)
更多请点击: https://intelliparadigm.com 第一章:Perplexity图标资源搜索 Perplexity AI 官方未提供公开的图标资源包(如 SVG、Favicon 或 App Icon 套件),但开发者可通过合法合规方式获取其品牌视觉资产用于技术文档…...
4步让旧款Mac焕发新生:OpenCore Legacy Patcher完全指南
4步让旧款Mac焕发新生:OpenCore Legacy Patcher完全指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台被苹果官方放弃支持的旧款Ma…...
在Node.js后端服务中集成Taotoken调用多模型AI功能的指南
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在Node.js后端服务中集成Taotoken调用多模型AI功能的指南 对于Node.js开发者而言,在后端服务中集成AI能力正变得日益普…...
ArcGIS老用户看过来:手把手教你为ArcMap 10.x定制专属Word报告插件(基于AddIN开发)
ArcGIS老用户进阶指南:打造智能Word报告生成插件 在GIS行业深耕多年的专业人士都清楚,ArcMap 10.x系列依然是许多企业和机构的核心生产力工具。尽管Esri已经将重心转向ArcGIS Pro,但大量历史项目、定制化工作流和团队使用习惯使得ArcMap仍然活…...
YOLOv8安全帽识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)
摘要 为有效监测施工现场安全帽佩戴情况,本研究基于YOLOv8目标检测算法构建了一套安全帽检测系统。数据集共包含5000张图像,涵盖helmet(安全帽)与head(未戴安全帽的头部)两类目标,其中训练集35…...
【新手向】:OpenClaw 本地 AI 智能体 Windows 部署教程(包含安装包)
Windows 一键部署 OpenClaw 教程|5 分钟搞定本地 AI 智能体,告别复杂配置 2026 年开源圈备受关注的「数字员工」OpenClaw(昵称小龙虾),凭借本地运行 零代码操作 自动执行任务的核心优势,成为实用型本地 …...
Perplexity接入知网文献搜索的5大避坑指南:实测发现92%研究者正在浪费87%检索时间
更多请点击: https://intelliparadigm.com 第一章:Perplexity接入知网文献搜索的底层逻辑与认知重构 Perplexity 作为基于大语言模型的实时问答引擎,其核心能力并非仅依赖于内部参数化知识,而是通过动态检索增强生成(…...
手把手教你用SWM34SRET6驱动4.3寸TFT屏:从LVGL图片加载到SDRAM缓存的完整流程
手把手教你用SWM34SRET6驱动4.3寸TFT屏:从LVGL图片加载到SDRAM缓存的完整流程 在嵌入式开发中,实现高性能的图形界面显示往往需要处理复杂的硬件资源分配和软件架构设计。SWM34SRET6作为一款内置8MB SDRAM的Cortex-M33微控制器,为TFT-LCD驱动…...
FPGA QUAD资源优化实战:多Aurora IP核共享时钟与PLL设计
1. 理解FPGA QUAD与Aurora IP核的基础架构 在Xilinx 7系列及后续FPGA架构中,QUAD是高速串行收发器的基本组织单元。每个QUAD包含4个独立的GTP/GTX/GTH通道(Channel)和1个共享的GT_COMMON模块。这种结构设计既保证了通道独立性,又…...

