NowCoder | KY11 二叉树遍历

NowCoder | KY11 二叉树遍历

OJ链接

  • 简单来说就是构建这个二叉树
  • 定义结构体
  • 通过递归方式根据输入的字符串构建二叉树。对于输入字符串中的每个字符,如果是 '#' 表示空节点,否则创建一个新节点,并递归地构建左右子树。
c 复制代码
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>

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

//创建节点
TNode* CreateTree(char* a,int*pi) {
    if(a[*pi] == '#')
    {
        ++(*pi);
        return NULL;
    }
    TNode* root = (TNode*)malloc(sizeof(TNode));

    root->val = a[(*pi)++];

    root->left = CreateTree(a,pi);
    root->right = CreateTree(a,pi);

    return root;
}

//前序遍历
void InOrder(TNode* root)
{
    if(root == NULL)
        return;
    InOrder(root->left);
    printf("%c ",root->val);
    InOrder(root->right);
}

int main() {
    char str[100];
    scanf("%s", str);
    int i = 0;
    TNode* root = CreateTree(str,&i);

    InOrder(root);
    return 0;
}
相关推荐
liu****9 分钟前
29.路径类dp
c++·算法·acm
JMchen12310 分钟前
Android计算摄影实战:多帧合成、HDR+与夜景算法深度剖析
android·经验分享·数码相机·算法·移动开发·android-studio
阿猿收手吧!16 分钟前
【C++】C++模板特化:精准定制泛型逻辑
开发语言·c++·算法
智驱力人工智能29 分钟前
货车走快车道检测 高速公路安全治理的工程实践与价值闭环 高速公路货车占用小客车道抓拍系统 城市快速路货车违规占道AI识别
人工智能·opencv·算法·安全·yolo·目标检测·边缘计算
喵手39 分钟前
Python爬虫实战:电商实体消歧完整实战 - 从混乱店铺名到标准化知识库的工程化实现,一文带你搞定!
爬虫·python·算法·爬虫实战·零基础python爬虫教学·同名实体消除·从混乱店铺名到标准化知识库
weixin_4521595543 分钟前
C++与Java性能对比
开发语言·c++·算法
80530单词突击赢44 分钟前
C++哈希表实现:开散列与闭散列详解
算法·哈希算法·散列表
Timmylyx05181 小时前
类欧几里得学习笔记
笔记·学习·算法
wangluoqi1 小时前
26.2.2练习总结
算法
2301_765703141 小时前
C++中的工厂模式实战
开发语言·c++·算法