Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 52f050a

Browse files
2. Add Two Numbers
1 parent 536b3c0 commit 52f050a

File tree

2 files changed

+113
-0
lines changed

2 files changed

+113
-0
lines changed

‎package.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "leetcode-javascript",
3+
"version": "1.0.0",
4+
"description": "leetcode-javascript",
5+
"main": "index.js",
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1"
8+
},
9+
"repository": {
10+
"type": "git",
11+
"url": "git+https://github.com/linjiajian999/leetCode-javaScript.git"
12+
},
13+
"author": "linjiajian999",
14+
"license": "ISC",
15+
"bugs": {
16+
"url": "https://github.com/linjiajian999/leetCode-javaScript/issues"
17+
},
18+
"homepage": "https://github.com/linjiajian999/leetCode-javaScript#readme"
19+
}

‎src/2. Add Two Numbers.js

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
/**
2+
* 2. Add Two Numbers
3+
* https://leetcode.com/problems/add-two-numbers/
4+
*/
5+
// Definition for singly-linked list.
6+
function ListNode(val) {
7+
this.val = val;
8+
this.next = null;
9+
}
10+
/**
11+
* @param {ListNode} l1
12+
* @param {ListNode} l2
13+
* @return {ListNode}
14+
*/
15+
var addTwoNumbers = function (l1, l2) {
16+
17+
let tag = 0;
18+
const res = new ListNode();
19+
20+
let currentNode = res;
21+
let currentVal = 0;
22+
23+
while (currentNode) {
24+
currentVal = tag;
25+
if (l1) {
26+
currentVal += l1.val;
27+
l1 = l1.next;
28+
}
29+
if (l2) {
30+
currentVal += l2.val;
31+
l2 = l2.next;
32+
}
33+
34+
currentNode.val = currentVal % 10;
35+
tag = parseInt(currentVal / 10);
36+
37+
if (l1 || l2) {
38+
currentNode.next = new ListNode();
39+
} else {
40+
currentNode.next = tag ? new ListNode(1) : null;
41+
}
42+
currentNode = currentNode.next;
43+
}
44+
45+
return res;
46+
};
47+
48+
function createList(array) {
49+
const res = new ListNode()
50+
array.reduce((pre, val, index, array) => {
51+
pre.val = val;
52+
const next = index === array.length - 1 ? null : new ListNode();
53+
pre.next = next;
54+
55+
return next
56+
}, res);
57+
return res;
58+
}
59+
function logList(list) {
60+
let str = '';
61+
let node = list;
62+
while (node) {
63+
str += `${node.val} -> `
64+
node = node.next;
65+
}
66+
return str;
67+
}
68+
69+
function test1() {
70+
const l1 = createList([2, 4, 5]);
71+
const l2 = createList([5, 6, 4])
72+
const res = addTwoNumbers(l1, l2);
73+
74+
console.log(logList(l1));
75+
console.log(logList(l2));
76+
console.log(logList(res));
77+
78+
console.log('res', l1, l2, res)
79+
}
80+
81+
function test2() {
82+
const l1 = createList([2, 4, 3]);
83+
const l2 = createList([5, 6, 4])
84+
const res = addTwoNumbers(l1, l2);
85+
86+
console.log(logList(l1));
87+
console.log(logList(l2));
88+
console.log(logList(res));
89+
90+
console.log('res', l1, l2, res)
91+
}
92+
93+
test1();
94+
test2();

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /