2.两数相加
大约 1 分钟
2.两数相加
/*
* @lc app=leetcode.cn id=2 lang=typescript
*
* [2] 两数相加
*/
// @lc code=start
/**
* Definition for singly-linked list.
* class ListNode {
* val: number
* next: ListNode | null
* constructor(val?: number, next?: ListNode | null) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
* }
*/
function addTwoNumbers(
l1: ListNode | null,
l2: ListNode | null
): ListNode | null {
// 初始化节点数组
let result: ListNode[] = [];
// 定义下一节点+值
let val = 0;
let l1_next = l1;
let l2_next = l2;
while (true) {
// 先将上一轮值添加
let arr = [0, 0, val];
// 获取l1_next、l2_next的值
if (l1_next) {
arr[0] = l1_next.val;
l1_next = l1_next.next;
}
if (l2_next) {
arr[1] = l2_next.val;
l2_next = l2_next.next;
}
let sum = 0;
for (let i = 0; i < 3; i++) {
sum += arr[i];
}
if (sum >= 10) {
val = 1;
result.push(new ListNode(sum - 10));
} else {
result.push(new ListNode(sum));
val = 0;
}
if (l1_next == null && l2_next == null) {
if (val == 1) {
result.push(new ListNode(1));
}
break;
}
}
console.log(result);
result.map((el, index) => {
if (index < result.length - 1) {
el.next = result[index + 1];
} else {
el.next = null;
}
});
return result[0];
}
// let node1 = new ListNode(9);
// let node2 = new ListNode(9);
// let node3 = new ListNode(9);
// let node4 = new ListNode(9);
// let node5 = new ListNode(9);
// let node6 = new ListNode(9);
// let node7 = new ListNode(9);
// let node8 = new ListNode(9);
// let node9 = new ListNode(9);
// let node10 = new ListNode(9);
// let node11 = new ListNode(9);
// node1.next = node2;
// node2.next = node3;
// node3.next = node4;
// node4.next = node5;
// node5.next = node6;
// node6.next = node7;
// node8.next = node9;
// node9.next = node10;
// node10.next = node11;
// addTwoNumbers(node1, node8);
// let node1 = new ListNode(1);
// let node2 = new ListNode(0);
// let node3 = new ListNode(0);
// let node7 = new ListNode(0);
// let node8 = new ListNode(0);
// let node9 = new ListNode(0);
// let node10 = new ListNode(0);
// let node11 = new ListNode(0);
// let node12 = new ListNode(0);
// let node13 = new ListNode(1);
// let node4 = new ListNode(5);
// let node5 = new ListNode(6);
// let node6 = new ListNode(4);
// // 创建四个节点,构建两条链表
// node1.next = node2;
// node2.next = node3;
// node2.next = node3;
// node3.next = node7;
// node7.next = node8;
// node8.next = node9;
// node9.next = node10;
// node10.next = node11;
// node11.next = node12;
// node12.next = node13;
// // 链表2
// node4.next = node5;
// node5.next = node6;
// addTwoNumbers(node1, node4);
// @lc code=end
Loading...
