一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 266|回复: 1
收起左侧

[算法题] 再请教一道题

[复制链接] |试试Instant~ |关注本帖
chekie 发表于 2016-4-5 05:44:34 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
129. Sum Root to Leaf Numbers
还是每个单独的case都能通过,就是提交的时候说[0,1]结果错误,应该是1,我给的是10. 但我单独拿这个case算出来明明是1的。
c code
  1. /**
  2. * Definition for a binary tree node.
  3. * struct TreeNode {
  4. *     int val;
  5. *     struct TreeNode *left;
  6. *     struct TreeNode *right;
  7. * };
  8. */

  9. #define MAX_DEPTH 100

  10. int sum = 0;
  11. char cur_string[MAX_DEPTH];

  12. void treeSearch (struct TreeNode* root) {
  13.     if(root == NULL) {
  14.         return;
  15.     }
  16.    
  17.     cur_string[strlen(cur_string)] = (char)(root->val + (int)('0'));  // append the digit to current string.
  18.    
  19.     if(root->left == NULL && root->right == NULL) { // we have a leaf.
  20.         sum += atoi(cur_string);
  21.     }
  22.     else {
  23.         if (root->left != NULL) { // go left
  24.             treeSearch(root->left);
  25.             cur_string[strlen(cur_string)-1] = '\0';  // remove the last digit upon return.
  26.         }
  27.         if (root->right != NULL) {  // go right
  28.             treeSearch(root->right);
  29.             cur_string[strlen(cur_string)-1] = '\0';  // remove the last digit upon return.
  30.         }
  31.     }
  32. }

  33. int sumNumbers(struct TreeNode* root) {
  34.     memset(cur_string, 0, MAX_DEPTH);
  35.     treeSearch(root);
  36.     return sum;
  37. }
复制代码
谢谢啦!


 楼主| chekie 发表于 2016-4-5 06:11:09 | 显示全部楼层
解决了。
需要在sumNumbers里面把sum初始化为0.
原来测试多个case的时候不是重新开始跑程序啊。
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-10 15:24

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表