【牛客】二叉树遍历

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

题目

题目链接点击进入

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

目录
相关文章
|
7月前
【一刷《剑指Offer》】面试题 6:重建二叉树
【一刷《剑指Offer》】面试题 6:重建二叉树
|
7月前
剑指Offer(第二版)10-2
剑指Offer(第二版)10-2
37 0
|
7月前
剑指Offer(第二版)05
剑指Offer(第二版)05
33 0
|
7月前
剑指Offer(第二版)06
剑指Offer(第二版)06
32 0
|
7月前
剑指Offer(第二版)11
剑指Offer(第二版)11
36 0
|
7月前
剑指Offer(第二版)03
剑指Offer(第二版)03
30 0
|
存储
【牛客网】二叉树遍历(八)
【牛客网】二叉树遍历(八)
63 0
剑指offer 72. 求1+2+…+n
剑指offer 72. 求1+2+…+n
82 0
|
Java
剑指offer(34-40题)详解
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)
98 0
剑指offer(34-40题)详解
|
BI Go 容器
剑指offer(51-59题)详解
思路: 这题刚开始还没想到,刚开始还想着用啥位运算?刚开始想着怎么用总数变成对应的数,但是人家要求不能用除法。得用乘法。(不要按照公式每个每个的死算,这样太低效)。其实把上面等式右侧看成两部分就行了。A[0]*A[1]*...*A[i-1]和A[i+1]*...*A[n-1]。
69 0
剑指offer(51-59题)详解