登录
  • #刷题

再请教一道题

chekie
793
1
129. Sum Root to Leaf Numbers

还是每个单独的case都能通过,就是提交的时候说[0,1]结果错误,应该是1,我给的是10. 但我单独拿这个case算出来明明是1的。

c code
/**[br][/br][br][/br] * Definition for a binary tree node.[br][/br][br][/br] * struct TreeNode {[br][/br][br][/br] *     int val;[br][/br][br][/br] *     struct TreeNode *left;[br][/br][br][/br] *     struct TreeNode *right;[br][/br][br][/br] * };[br][/br][br][/br] */[br][/br][br][/br] [br][/br][br][/br]#define MAX_DEPTH 100[br][/br][br][/br]int sum = 0;[br][/br][br][/br]char cur_string[MAX_DEPTH];[br][/br][br][/br]void treeSearch (struct TreeNode* root) {[br][/br][br][/br]    if(root == NULL) {[br][/br][br][/br]        return;[br][/br][br][/br]    }[br][/br][br][/br]    [br][/br][br][/br]    cur_string[strlen(cur_string)] = (char)(root->val + (int)('0'));  // append the digit to current string.[br][/br][br][/br]    [br][/br][br][/br]    if(root->left == NULL && root->right == NULL) { // we have a leaf.[br][/br][br][/br]        sum += atoi(cur_string);[br][/br][br][/br]    }[br][/br][br][/br]    else {[br][/br][br][/br]        if (root->left != NULL) { // go left[br][/br][br][/br]            treeSearch(root->left);[br][/br][br][/br]            cur_string[strlen(cur_string)-1] = '\0';  // remove the last digit upon return.[br][/br][br][/br]        }[br][/br][br][/br]        if (root->right != NULL) {  // go right[br][/br][br][/br]            treeSearch(root->right);[br][/br][br][/br]            cur_string[strlen(cur_string)-1] = '\0';  // remove the last digit upon return.[br][/br][br][/br]        }[br][/br][br][/br]    }[br][/br][br][/br]}[br][/br][br][/br]int sumNumbers(struct TreeNode* root) {[br][/br][br][/br]    memset(cur_string, 0, MAX_DEPTH);[br][/br][br][/br]    treeSearch(root);[br][/br][br][/br]    return sum;[br][/br][br][/br]}
谢谢啦!
1条回复
热度排序

发表回复