Advertisement
Alexxik

Untitled

Sep 17th, 2023
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.93 KB | None | 0 0
  1. // MARK: - 2. Add Two Numbers
  2.  
  3. func addTwoNumbers(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
  4.     var l1 = l1
  5.     var l2 = l2
  6.     var result = ListNode()
  7.     var current: ListNode? = result
  8.    
  9.    
  10.     var additional = 0
  11.    
  12.     // Надо еще обработать случай когда 7+8 и остается добавка
  13.     while l1 != nil || l2 != nil || additional != 0 {
  14.        
  15.         var v1 =  l1 != nil   ?   l1?.val : 0
  16.         var v2 =  l2 != nil   ?   l2?.val : 0
  17.        
  18.         // Новое число
  19.         var newVal = v1! + v2! + additional
  20.         // Если newVal > 10
  21.         additional = newVal / 10
  22.         newVal = newVal % 10
  23.         current?.next = ListNode(newVal)
  24.        
  25.         // Обновим указатели
  26.         current = current?.next
  27.         l1 =   l1 != nil  ?  l1?.next : nil
  28.         l2 =   l2 != nil  ?  l2?.next : nil
  29.     }
  30.     return result.next
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement