第一次提交:编译出错。&&符号用错了,用成了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)