JavaScript实现-LeetCode刷题-【 两数相加】-第2题!!!
程序员文章站
2022-06-22 14:10:52
题目:LeetCode题目链接题目截图:解题步骤:1.新建一个空链表2.遍历被相加的两个链表,模拟相加操作,将个位数追加到新链表上,将十位数留到下一位去相加代码:/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null...
题目:
题目截图:
解题步骤:
1.新建一个空链表
2.遍历被相加的两个链表,模拟相加操作,将个位数追加到新链表上,将十位数留到下一位去相加
代码:
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var addTwoNumbers = function(l1, l2) {
const l3 = new ListNode(0);
let p1 = l1;
let p2 = l2;
let p3 = l3;
let carry = 0;
while (p1 || p2) {
const v1 = p1 ? p1.val : 0;
const v2 = p2 ? p2.val : 0;
const val = v1 + v2 + carry;
carry = Math.floor(val / 10);
// 进位值为0 或者 1
p3.next = new ListNode(val % 10);
if (p1) p1 = p1.next;
if (p2) p2 = p2.next;
p3 = p3.next;
}
if (carry) p3.next = new ListNode(carry);
return l3.next;
};
时间复杂度分析:
时间复杂度是O(n),n指的是两个链表中较长的长度
空间复杂度分析:
空间复杂度是O(n)
怎么样,是不是很简单,你学会了吗?
如果这篇文章能够帮助到您,希望您不要吝惜点赞????????和收藏????????,您的支持是我继续努力的动力 ????????!!!
本文地址:https://blog.csdn.net/weixin_44586544/article/details/112054838
上一篇: async与await以及宏微任务
下一篇: JS实现transform实现扇子效果