【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] = '\0';
    return str;
}

 

posted @ 2020-11-26 23:07  温暖了寂寞  阅读(113)  评论(0编辑  收藏  举报