002addTwoNumbers
Posted selfdef
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了002addTwoNumbers相关的知识,希望对你有一定的参考价值。
刚开始的时候没太懂题目意思,就利用LeetCode的return提交进行测试,但是提交后发现结果是数组?
尝试用数组的方法,又报错。。。
后来才想到,LeetCode会不会在后面做些其他操作进行转换呀,测试了后发现确实是这样,
然后又测试发现LeetCode上可以使用console.log进行打印查看打印结果。。。快吐血了有没有
这题教我们使用链表,感觉这题比较妙的地方在与使用了carry,可以将本轮运算结果的进位放至下一轮,
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var addTwoNumbers = function(l1, l2) {
let result = new ListNode(null)
let re = result,carray = 0,s
while(l1||l2||carray)
{
const x = l1?l1.val:0
const y = l2?l2.val:0
s= x+y+carray
re.next = new ListNode(s%10)
carray = ~~(s/10)
re = re.next
l1&&(l1 = l1.next)
l2&&(l2 = l2.next)
}
return result.next
};
将变量大都声明在外面是因为感觉这样执行速度会快点?magic,或许当时正赶上LeetCode服务器上运行的少?
不过,为了程序的可读性,不推荐这样做(虽然这里这样做了),工程中,程序的可读性占的比重要比这点性能优化多太多了
以上是关于002addTwoNumbers的主要内容,如果未能解决你的问题,请参考以下文章