查看: 1101| 回复: 1
跳转到指定楼层
上一主题 下一主题
收起左侧

再请教一道题

全局:

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

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. }
复制代码
谢谢啦!



上一篇:问道G的面试题
下一篇:熱騰騰的groupon電面 面經 就一道題目
🔗
 楼主| chekie 2016-4-5 06:11:09 | 只看该作者
全局:
解决了。
需要在sumNumbers里面把sum初始化为0.
原来测试多个case的时候不是重新开始跑程序啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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