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;
}
相关推荐
资深web全栈开发1 小时前
LeetCode 3625. 统计梯形的数目 II
算法·leetcode·组合数学
橘颂TA1 小时前
【剑斩OFFER】算法的暴力美学——外观数列
算法·leetcode·职场和发展·结构与算法
Liangwei Lin1 小时前
洛谷 P1434 [SHOI2002] 滑雪
算法
c#上位机2 小时前
halcon图像增强之自动灰度拉伸
图像处理·算法·c#·halcon·图像增强
rit84324992 小时前
压缩感知信号恢复算法:OMP与CoSaMP对比分析
数据库·人工智能·算法
Pluchon3 小时前
硅基计划4.0 算法 FloodFill算法
java·算法·leetcode·决策树·逻辑回归·深度优先·图搜索算法
菜鸟233号3 小时前
力扣347. 前k个高频元素 java实现
算法
Xの哲學4 小时前
Linux设备管理:从内核驱动到用户空间的完整架构解析
linux·服务器·算法·架构·边缘计算
xinyu_Jina4 小时前
Info Flow:去中心化数据流、跨协议标准化与信息源权重算法
算法·去中心化·区块链
Jac_kie_層樓4 小时前
力扣hot100刷题记录(12.2)
算法·leetcode·职场和发展