File tree Expand file tree Collapse file tree 1 file changed +19
-20
lines changed Expand file tree Collapse file tree 1 file changed +19
-20
lines changed Original file line number Diff line number Diff line change @@ -40,27 +40,26 @@ const plusOneRecursion = node => {
40
40
41
41
// another
42
42
43
+ /**
44
+ * @param {ListNode } head
45
+ * @return {ListNode }
46
+ */
43
47
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 )
48
49
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
52
55
}
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
64
61
}
65
- return inc ? dummy : dummy . next
66
- } ;
62
+ return dummy . val === 1 ? dummy : dummy . next
63
+ }
64
+
65
+
You can’t perform that action at this time.
0 commit comments