606. 根据二叉树创建字符串

606. 根据二叉树创建字符串


C代码:二叉树

c 复制代码
char* str;
int top;

// 录入子节点前加(
void dfs (struct TreeNode* root) {
    if (root == NULL) {
        return;
    }
    str[top++] = '(';
    // top += sprintf(str + strlen(str), "%d", root->val); // strlen(str)错误,因为后续添加了')', 没有添加'\0';
    top += sprintf(str + top, "%d", root->val);
    if (root->left == NULL && root->right != NULL) {
        str[top++] = '(';
        str[top++] = ')';
    }
    dfs(root->left);
    dfs(root->right);
    str[top++] = ')';
}

char * tree2str(struct TreeNode* root){
    if (root == NULL){ 
        return NULL;
    }
    str = (char*)malloc(sizeof(char) * 30000);
    top = 0;
    dfs(root);
    str[strlen(str)] = '\0';  // (1(2(4))(3))

    char* ans = (char*)malloc(sizeof(char) * top);  // 处理细节
    for (int i = 1; i < top - 1; ++i) {
        ans[i - 1] = str[i];
    }
    ans[top-2] = '\0';
    return ans;
}
相关推荐
wearegogog1232 小时前
MATLAB的脉搏信号分析预处理
算法·matlab
fs哆哆2 小时前
在VB.net中一维数组,与VBA有什么区别
java·开发语言·数据结构·算法·.net
wjt1020202 小时前
机器学习--续
算法·机器学习
牵星术小白3 小时前
【GNSS基带算法】Chapter.2 相干积分与非相干积分
算法
哇哈哈QIQ4 小时前
2025.7.19卡码刷题-回溯算法-组合
算法
gihigo19987 小时前
matlab多目标优化差分进化算法
数据结构·算法
weixin_582470177 小时前
GS-IR:3D 高斯喷溅用于逆向渲染
人工智能·算法
Lin9成7 小时前
机器学习集成算法与K-means聚类
算法
JNU freshman8 小时前
算法 之 拓 扑 排 序
数据结构·算法
NAGNIP8 小时前
DeepSeek-R1 架构解析:如何通过强化学习激发大模型的推理能力?
算法