File tree Expand file tree Collapse file tree 1 file changed +13
-32
lines changed
solution/0000-0099/0002.Add Two Numbers Expand file tree Collapse file tree 1 file changed +13
-32
lines changed Original file line number Diff line number Diff line change @@ -270,6 +270,7 @@ def add_two_numbers(l1, l2)
270
270
dummy.next
271
271
end
272
272
```
273
+
273
274
### ** Swift**
274
275
275
276
``` swift
@@ -285,40 +286,20 @@ end
285
286
*/
286
287
class Solution {
287
288
func addTwoNumbers (_ l1 : ListNode? , _ l2 : ListNode? ) -> ListNode? {
289
+ var dummy = ListNode.init ()
288
290
var carry = 0
289
- var resHead: ListNode?
290
- var resCur: ListNode?
291
- var l1Cur = l1
292
- var l2Cur = l2
293
- while l1Cur != nil || l2Cur != nil {
294
- var nodeVal: Int !
295
- if let l1Value = l1Cur? .val, let l2Value = l2Cur? .val {
296
- nodeVal = l1Value + l2Value + carry
297
- } else if let l1Value = l1Cur? .val {
298
- nodeVal = l1Value + carry
299
- } else if let l2Value = l2Cur? .val {
300
- nodeVal = l2Value + carry
301
- }
302
- if nodeVal >= 10 {
303
- nodeVal = nodeVal % 10
304
- carry = 1
305
- } else {
306
- carry = 0
307
- }
308
- let node = ListNode (nodeVal)
309
- if resHead == nil {
310
- resHead = node
311
- }
312
- resCur? .next = node
313
- resCur = node
314
- l1Cur = l1Cur? .next
315
- l2Cur = l2Cur? .next
316
- }
317
- if carry != 0 {
318
- let node = ListNode (carry)
319
- resCur? .next = node
291
+ var l1 = l1
292
+ var l2 = l2
293
+ var cur = dummy
294
+ while l1 != nil || l2 != nil || carry != 0 {
295
+ let s = (l1? .val ?? 0 ) + (l2? .val ?? 0 ) + carry
296
+ carry = s / 10
297
+ cur.next = ListNode.init (s % 10 )
298
+ cur = cur.next !
299
+ l1 = l1? .next
300
+ l2 = l2? .next
320
301
}
321
- return resHead
302
+ return dummy. next
322
303
}
323
304
}
324
305
```
You can’t perform that action at this time.
0 commit comments