牛客网 KY11 二叉树遍历

简介: 牛客网 KY11 二叉树遍历

1.解题思路

该题需要提供两个接口,一个是根据前序构造二叉树的接口,一个是中序遍历接口

2.代码实现

2.1根据前序构造二叉树的接口

因为’#‘就代表空,所以如果遇到’#'时,直接返回即可.

struct BinaryNode* TreeCreate(char *a,int *i)
{
    if(a[*i]=='#')
    {
     (*i)++;
     return NULL;
    }
    struct BinaryNode*root=(struct BinaryNode*)malloc(sizeof(struct BinaryNode));
    root->val=a[*i];
    (*i)++;
    root->left=TreeCreate(a,i);
    root->right=TreeCreate(a,i);
    return root;
}

2.2中序遍历接口

void Inorder(struct BinaryNode*root)
{
   if(root==NULL)
   return;
   Inorder(root->left);
   printf("%c ",root->val);
   Inorder(root->right);
}

2.3总体代码

#include <stdio.h>
typedef struct BinaryNode
{
    char val;
    struct BinaryNode*left;
    struct BinaryNode*right;
}BT;
struct BinaryNode* TreeCreate(char *a,int *i)
{
    if(a[*i]=='#')
    {
     (*i)++;
     return NULL;
    }
    struct BinaryNode*root=(struct BinaryNode*)malloc(sizeof(struct BinaryNode));
    root->val=a[*i];
    (*i)++;
    root->left=TreeCreate(a,i);
    root->right=TreeCreate(a,i);
    return root;
}
void Inorder(struct BinaryNode*root)
{
   if(root==NULL)
   return;
   Inorder(root->left);
   printf("%c ",root->val);
   Inorder(root->right);
}
int main()
 {
  char a[101];
  gets(a);
   int pi=0;
  struct BinaryNode*root= TreeCreate(a,&pi);
  Inorder(root);
    return 0;
}

结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!

目录
相关文章
|
5月前
二叉树oj题集(LeetCode)
二叉树oj题集(LeetCode)
|
12月前
codeforces 272C. Dima and Staircase(线段树)
题目很长,看加猜加谷歌翻译才看懂了题目。每级台阶的宽都是1,但高不同,并且告诉你了,然后给你m个箱子,长和宽都告诉你,把箱子靠左放,求箱子的底部有多高。
28 0
|
12天前
lanqiao OJ 108 发现环
lanqiao OJ 108 发现环
10 1
|
10天前
|
算法
lanqiao OJ 1366 spfa最短路
lanqiao OJ 1366 spfa最短路
18 0
|
存储
【Leetcode -563.二叉树的坡度 - Nowcoder -KY11.二叉树遍历】
【Leetcode -563.二叉树的坡度 - Nowcoder -KY11.二叉树遍历】
41 0
华为机试HJ44:Sudoku(数独问题,深度优先遍历DFS解法)
华为机试HJ44:Sudoku(数独问题,深度优先遍历DFS解法)
128 0
NowCoder | KY11 二叉树遍历
NowCoder | KY11 二叉树遍历
|
5月前
【每日一题Day328】LC198打家劫舍 | 动态规划
【每日一题Day328】LC198打家劫舍 | 动态规划
48 0
|
5月前
牛客网-重建二叉树
牛客网-重建二叉树
41 0
|
存储 算法 C++
剑指offer(C++)-JZ69:跳台阶(算法-动态规划)
剑指offer(C++)-JZ69:跳台阶(算法-动态规划)