Skip to content

Commit c9857d5

Browse files
authored
Update 369-plus-one-linked-list.js
1 parent d6b6820 commit c9857d5

File tree

1 file changed

+19
-20
lines changed

1 file changed

+19
-20
lines changed

369-plus-one-linked-list.js

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -40,27 +40,26 @@ const plusOneRecursion = node => {
4040

4141
// another
4242

43+
/**
44+
* @param {ListNode} head
45+
* @return {ListNode}
46+
*/
4347
const plusOne = function(head) {
44-
if(head == null) return null
45-
let inc = false
46-
const arr = []
47-
const dummy = new ListNode(1)
48+
const dummy = new ListNode(0)
4849
dummy.next = head
49-
while(head) {
50-
arr.push(head)
51-
head = head.next
50+
let node = head
51+
let lastNotNine = dummy
52+
while(node) {
53+
if(node.val !== 9) lastNotNine = node
54+
node = node.next
5255
}
53-
let oneAdded = false
54-
for(let i = arr.length - 1; i >= 0; i--) {
55-
const el = arr[i]
56-
let sum
57-
if(!oneAdded) {
58-
sum = el.val + 1
59-
oneAdded = true
60-
} else sum = el.val
61-
if(inc) sum += 1
62-
arr[i].val = sum % 10
63-
inc = sum >= 10 ? true : false
56+
lastNotNine.val++
57+
node = lastNotNine.next
58+
while(node) {
59+
node.val = 0
60+
node = node.next
6461
}
65-
return inc ? dummy : dummy.next
66-
};
62+
return dummy.val === 1 ? dummy : dummy.next
63+
}
64+
65+

0 commit comments

Comments
 (0)