力扣链接:2.两数相加
难度:⭐⭐
解题关键词:链表
解题思路:记得进位,如果最后遍历完,还有进位,一定要在末尾加一个 nodeValue 为 1 的节点。
typescript
function addTwoNumbers(
l1: ListNode | null,
l2: ListNode | null
): ListNode | null {
let flag = false;
const head = new ListNode();
let cur = head;
while (l1 || l2) {
const l1Val = l1 ? l1.val : 0;
const l2Val = l2 ? l2.val : 0;
const sum = l1Val + l2Val + +flag;
// 多于 10 产生了进位,要 %10
cur.next = new ListNode(sum % 10);
// 如果大于等于10,下一位要进位
flag = sum >= 10;
cur = cur.next;
if (l1) l1 = l1.next;
if (l2) l2 = l2.next;
}
// 最后还有进位
if (flag) {
cur.next = new ListNode(1);
}
return head.next;
}