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;
}
相关推荐
千寻girling8 分钟前
机器学习 | 逻辑回归 | 尚硅谷学习
java·人工智能·python·学习·算法·机器学习·逻辑回归
Shadow(⊙o⊙)21 分钟前
C++常见错误解析2.0
开发语言·数据结构·c++·后端·学习·算法
永远不会的CC22 分钟前
研0上岸找实习面试经历
python·算法·面试
帅小伙―苏23 分钟前
力扣483找到字符串中所有字母异位词
算法·leetcode
小O的算法实验室24 分钟前
2022年IEEE TETCI,基于矩阵的进化计算,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
欧米欧32 分钟前
STRING的底层实现
前端·c++·算法
smj2302_7968265242 分钟前
解决leetcode第3906题统计网格路径中好整数的数目
python·算法·leetcode
KobeSacre44 分钟前
leetcode 树
算法·leetcode·职场和发展
6Hzlia1 小时前
【Hot 100 刷题计划】 LeetCode 104. 二叉树的最大深度 | C++ 自底向上递归最优解
算法
Robot_Nav1 小时前
Kinodynamic Lazy ThetaStar:面向实时机器人导航的两阶段运动学路径规划算法
算法·机器人·lazy theta