File tree 1 file changed +10
-18
lines changed
1 file changed +10
-18
lines changed Original file line number Diff line number Diff line change 16
16
17
17
class AddTwoNumbers {
18
18
func addTwoNumbers( l1: ListNode ? , _ l2: ListNode ? ) -> ListNode ? {
19
- var carry = 0 , l1 = l1, l2 = l2
20
- let dummy = ListNode ( 0 )
21
- var node = dummy
19
+ guard let l1 = l1 else { return l2}
20
+ guard let l2 = l2 else { return l1}
22
21
23
- while l1 != nil || l2 != nil || carry != 0 {
24
- if l1 != nil {
25
- carry += l1!. val
26
- l1 = l1!. next
27
- }
28
- if l2 != nil {
29
- carry += l2!. val
30
- l2 = l2!. next
31
- }
32
-
33
- node. next = ListNode ( carry % 10 )
34
- node = node. next!
35
-
36
- carry = carry / 10
22
+ let outputNode = ListNode ( ( l1. val + l2. val) % 10 )
23
+ if l1. val + l2. val > 9 {
24
+ outputNode. next = addTwoNumbers ( addTwoNumbers ( l1. next, l2. next) ,
25
+ ListNode ( 1 ) )
26
+ } else {
27
+ outputNode. next = addTwoNumbers ( l1. next, l2. next)
37
28
}
38
29
39
- return dummy. next
30
+
31
+ return outputNode
40
32
}
41
33
}
You can’t perform that action at this time.
0 commit comments