牛客网(二叉树)

https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef?tpId=60&&tqId=29483&rp=1&ru=/activity/oj&qru=/ta/tsing-kaoyan/question-ranking 

这个题目和leetcode比起来就是有一些不一样,需要我们自己来写接口函数,所以有一些麻烦,我们得写一个中序遍历的函数做最后的输出,也得写一个函数来存储字符进去,还得写一个接口函数来创造节点,这个题目就和二叉树如何创造节点很相似,我们一个一个接口来进行分析,首先我这里直接给出大家需要的结构体。

typedef struct TreeNode
{char val;struct TreeNode* left;struct TreeNode* right;
}TreeNode;

这个就是很基础的结构体中的内容,因为我们每次放字符进去需要创造节点,我们这样就可以继续写一个创造节点的函数,我们来看看。、

TreeNode* CreatNode(char x)
{TreeNode* newnode = (TreeNode*)malloc(sizeof(TreeNode));newnode->val = x;newnode->left = newnode->right = NULL;return newnode;
}

 

接下来难得其实就是我们如何把这些字符放到这个里面我们对着代码讲可能简单理解一点。

TreeNode* maketree(char* a, int* pi)
{if(a[*pi] == '#'){(*pi)++;return NULL;}TreeNode* root = CreatNode(a[(*pi)++]);root->left = maketree(a, pi);root->right = maketree(a, pi);return root;
}

 

 我们得子问题就是一个父亲节点和两个孩子节点应该怎么进行链接,我们遇到字符‘#’得时候就得返回空指针,如果不是空得时候就得创造节点,把值放进去,然后进行遍历得就行,但是我们需要进行链接,所以root得left和right要指向我们得函数递归得地方,大家也可以画画递归展开图进行理解。

 

我们前序存储就需要变成这样得一棵树。

完整代码

#include<stdio.h>
typedef struct TreeNode
{char val;struct TreeNode* left;struct TreeNode* right;
}TreeNode;TreeNode* CreatNode(char x)
{TreeNode* newnode = (TreeNode*)malloc(sizeof(TreeNode));newnode->val = x;newnode->left = newnode->right = NULL;return newnode;
}
TreeNode* maketree(char* a, int* pi)
{if(a[*pi] == '#'){(*pi)++;return NULL;}TreeNode* root = CreatNode(a[(*pi)++]);root->left = maketree(a, pi);root->right = maketree(a, pi);return root;
}
void Inorder(TreeNode* root)
{if(root == NULL){return ;}Inorder(root->left);printf("%c ",root->val);Inorder(root->right);
}
int main()
{char arr[101];scanf("%s",arr);int count = 0;TreeNode* tree = maketree(arr,&count);Inorder(tree);return 0;
}

 

又是水文章得一天。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/265083.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nacos配置管理-微服务配置拉取

yaml已配置内容 目录 一、配置获取步骤 二、统一配置管理步骤 三、Nacos管理配置的步骤总结 一、配置获取步骤 二、统一配置管理步骤 1、引入Nacos的配置管理客户端依赖: <!--nacos配置管理依赖--> <dependency> <groupId>com.alibaba.cloud&l…

python+gdal地理坐标转投影坐标

1 前言 地理坐标系&#xff0c;是使用三维球面来定义地球表面位置&#xff0c;以实现通过经纬度对地球表面点位引用的坐标系。 地理坐标系经过地图投影操作后就变成了投影坐标系。而地图投影是按照一定的数学法则将地球椭球面上点的经维度坐标转换到平面上的直角坐标。 2 流程…

springboot+ssm+java植物养护花卉花圃管理系统

花圃管理系统&#xff0c;主要的模块包括查看个人中心、游客管理、员工管理、植物种类管理、植物信息管理、植物绿化管理、花圃园区管理、商品服务管理、系统管理等功能。系统中管理员主要是为了安全有效地存储和管理各类信息&#xff0c;还可以对系统进行管理与更新维护等操作…

【JavaWeb笔记】单选框,结合Servlet

各个部分的作用 jsp部分 form action"..."&#xff1a;表单标签&#xff0c;供用户提交数据。内部的submit点击之后相当于是点action的URL input type"radio"&#xff1a;输入类型为单选框。把name设置为一样的&#xff0c;这样效果上就是单选&#xff…

巧用ChatGPT高效搞定Excel数据分析【文末送书-04】

文章目录 一.巧用ChatGPT高效搞定Excel数据分析1. ChatGPT简介2. 安装所需工具2.1 Python2.2 OpenAI GPT库 3. 与ChatGPT交互进行数据分析4. 利用ChatGPT进行筛选和排序5. ChatGPT的局限性和注意事项6. ChatGPT与数据可视化7. ChatGPT与进阶数据分析任务 二. 结论&文末福利…

米软单病种质量管理智能上报系统之基础资源管理

米软单病种质量管理智能上报系统 面市以来&#xff0c;便在以下各方各面获得一致好评&#xff0c;包括&#xff1a;病例匹配抓取、数据处理效率、填报耗时、用户体验、客户评价等。 这些亮眼的成果&#xff0c;源于米软人持续不懈地对基础数据进行了严谨、细致、反复验证的处理…

047:vue加载循环倒计时 示例

第047个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

格雷希尔V系列自封阀公母头配合快速接头完成流水线式测试的使用方法

在工业生产线上&#xff0c;有些产品在进行气密性测试时需要快速密封连接器跟随着流水线一起移动&#xff0c;此时连接器上的气管就成了一个问题&#xff0c;由于气管是固定在测试设备上的&#xff0c;不能随着产品线的流动而移动&#xff0c;因此将会随着产品的移动而受到干扰…

MYsql第二次作业

目录 问题 解答 1. 2. 3. 4. 5. 6. 7.查看所有人的年龄 8. 9. 10 11 12.查询部门号为103或102的职工号&#xff0c;姓名&#xff0c;政治面貌 13. 14 15 16 17. 问题 解答 1. 2. 3. 4. 5. 6. 7.查看所有人的年龄 8. 9. 10 11 12.查询部门号为103或102的职…

YOLOv8改进 | 2023检测头篇 | 利用AFPN改进检测头适配YOLOv8版(全网独家创新)

一、本文介绍 本文给大家带来的改进机制是利用今年新推出的AFPN&#xff08;渐近特征金字塔网络&#xff09;来优化检测头&#xff0c;AFPN的核心思想是通过引入一种渐近的特征融合策略&#xff0c;将底层、高层和顶层的特征逐渐整合到目标检测过程中。这种渐近融合方式有助于…

拥有大量虾皮买家号有哪些好处

拥有众多Shopee买家账号&#xff0c;无疑是卖家们获取极大优势的一项策略。多账号的运用不仅有助于卖家在Shopee平台上获得更为丰富的流量&#xff0c;更能够在关键词排名和销售表现等方面为其带来显著提升。 首先&#xff0c;多个Shopee买家账号的灵活运用&#xff0c;使卖家能…

【Marp】基于Markdown-Marp快速制作PPT

【Marp】基于Markdown-Marp快速制作PPT 文章目录 【Marp】基于Markdown-Marp快速制作PPT零、参考资料一、Marp基本语法&#xff08;创建分页&#xff0c;排版图片&#xff0c;更换主题&#xff0c;Marp扩展指令修改样式&#xff09;1、创建新的PPT页面2、插入图片 & 排版图…