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

#define MAX_SIZE 50000

void transfer_bitree(struct TreeNode* t, char *s, int *len)
{
    if (t) {
        *len += sprintf(s + *len, "%d", t->val);
        if (t->left || t->right) {
            *len += sprintf(s + *len, "%s", "(");
            transfer_bitree(t->left, s, len);
            *len += sprintf(s + *len, "%s", ")");
        }
        if (t->right) {
            *len += sprintf(s + *len, "%s", "(");
            transfer_bitree(t->right, s, len);
            *len += sprintf(s + *len, "%s", ")");
        }
    }
}

char * tree2str(struct TreeNode* t)
{
    char *str = malloc(MAX_SIZE);
    int len = 0;
    transfer_bitree(t, str, &len);
    str[len] = '';
    return str;
}
原文地址:https://www.cnblogs.com/ganxiang/p/14045253.html