【牛客】二叉树遍历

简介: 【牛客】二叉树遍历

题目

题目链接点击进入

1.png

解题过程

对示例1中的样例即:abc##de#g##f###进行先序遍历建立一个二叉树,建立完成之后就是这样的,如下图:

2.png

然后再将这颗树进行中序遍历进行最后的结果输出。

无非就是用递归嘛

整个题目的思路挺清晰的:先先序遍历建立一棵二叉树,然后再对这棵二叉树进行中序遍历输出其值。


解题代码

#include<stdio.h>
struct TreeNode
{
    struct TreeNode* left;
    struct TreeNode* right;
    char val;
};
//先序建立二叉树
struct TreeNode* CreateTree(char* a,int* pi)
{
    if(a[*pi]=='#')
    {
        (*pi)++;
        return NULL;
    }
    struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
    root->val=a[(*pi)++];
    root->left=CreateTree(a, pi);
    root->right=CreateTree(a, pi);
    return root;
}
//中序输出结果
void InOrder(struct TreeNode* root)
{
    if(root==NULL)
    {
        return;
    }
    InOrder(root->left);
    printf("%c ",root->val);
    InOrder(root->right);
}
int main()
{
    char a[100];
    scanf("%s",a);
    int i=0;
    struct TreeNode* root=CreateTree(a,&i);
    InOrder(root);
    return 0;
}

3.png

目录
相关文章
|
监控 数据库
SNMP-详解指南
SNMP(Simple Network Management Protocol,简单网络管理协议)是一种广泛应用于互联网上的网络管理协议。它提供了一种标准化的方法,使得网络管理员能够收集、组织、解释和显示网络设备的管理信息,从而实现对网络资源的有效监控和控制。
517 13
|
C语言
C语言模块化程序设计
C语言模块化程序设计
275 0
|
机器学习/深度学习 人工智能 自然语言处理
从此告别PPT制作的烦恼:ChatGPT和MindShow帮你快速完成
从此告别PPT制作的烦恼:ChatGPT和MindShow帮你快速完成
|
存储 安全 前端开发
OAuth 2.0资源授权机制与安全风险分析
OAuth 2.0资源授权机制与安全风险分析
458 1
|
数据采集 Web App开发 JSON
爬虫实战小案例—获取喜马拉雅账号的关注数据和粉丝数据生成电子表格并实现批量关注或者取关然后生成表格文件
爬虫实战小案例—获取喜马拉雅账号的关注数据和粉丝数据生成电子表格并实现批量关注或者取关然后生成表格文件
314 0
|
C语言
【数据结构】二叉树(c语言)(附源码)
本文介绍了如何使用链式结构实现二叉树的基本功能,包括前序、中序、后序和层序遍历,统计节点个数和树的高度,查找节点,判断是否为完全二叉树,以及销毁二叉树。通过手动创建一棵二叉树,详细讲解了每个功能的实现方法和代码示例,帮助读者深入理解递归和数据结构的应用。
959 8
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
定位技术
ArcGIS中ArcMap栅格图层0值设置为NoData值的简便方法
ArcGIS中ArcMap栅格图层0值设置为NoData值的简便方法
827 1
|
机器学习/深度学习 自然语言处理 安全
【开源威胁情报挖掘3】开源威胁情报融合评价
【开源威胁情报挖掘3】开源威胁情报融合评价
403 0
|
Web App开发 数据安全/隐私保护
【chrome】谷歌chrome浏览器离线安装包的获取及使用技巧
【chrome】谷歌chrome浏览器离线安装包的获取及使用技巧