- #刷题
再请教一道题

7931
129. Sum Root to Leaf Numbers
还是每个单独的case都能通过,就是提交的时候说[0,1]结果错误,应该是1,我给的是10. 但我单独拿这个case算出来明明是1的。
c code
还是每个单独的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条回复
热度排序