链表求和

第一次提交:编译出错。&&符号用错了,用成了and(最近python用惯了)

第二次提交:编译出错。flag未定义类型,start,sum未定义类型。

第三次提交:编译出错。47行start.val = sum 误写为 start = sum

第四次提交:编译成功,但是运行时内存超过限制。22%的数据通过测试。

第五次提交:wrong answer    3->1->2->null, 5->9->5->1->null    输出       8->0->8->null     期望答案     8->0->8->1->null

第六次提交:错误同上

第七次提交:wrong answer,通过数据量0%。

第十一次提交:Ac   

  换了一种思路:1、比较两个连表的长短,用longer和shorter分别存储这两个链表;

         2、遍历短链表,直至短链表到null,遍历的过程中需要考虑加法溢出;如果两个链表等长,返回结果;

         3、如果两个链表不等长,遍历余下的长链表直至null。

   虽然Ac,但用时较长,代码繁琐。

第十二次提交:Ac.  参考leetcode讨论,更改部分代码后用时减少一半以上。更改代码如下:

    sum = flag + longer.val + shorter.val;
            flag = 0;
            if (sum >= 10){
                longer.val = sum - 10;
                flag = 1;
            } else {
                longer.val = sum;
            }

    改为:

     longer.val += flag  + shorter.val;
            flag = longer.val / 10;
            longer.val %= 10;

   今后写代码需要注意代码的简洁。

第十六次提交:没有预先判断链表的长短,用时稍长一点。还有写代码时粗心,变量符号出错。以及java的基础语法知识不熟练,循环结构和分支结构的判断中只能是bool类型的值,我给的是                     一个整形值。 如:if(flag) 错误,应为if (flag == 1)。

  提交时超时,没有找到错误,查看原来提交的记录发现是循环中没有向后迭代,添加  l1 = l1.next,l2 = l2.next。

  还有一处错误,判断 l2 是否结束,若l2未结束,则将l2连接至l1,应该是 if(l2.next != null) ,我写的是 if (l2 != null) 

 



posted on 2017-04-24 17:05  loveLifeloveSport  阅读(201)  评论(0编辑  收藏  举报