Advertisement
HXXXXJ

445. Add Two Numbers II

Mar 27th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.91 KB | None | 0 0
  1.     func addTwoNumbers(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
  2.         if l1 == nil && l2 == nil {return nil}
  3.         var stack1 = [ListNode]()
  4.         var runner = l1
  5.         while runner != nil {
  6.             stack1.append(runner!)
  7.             runner = runner!.next
  8.         }
  9.         var stack2 = [ListNode]()
  10.         runner = l2
  11.         while runner != nil {
  12.             stack2.append(runner!)
  13.             runner = runner!.next
  14.         }
  15.        
  16.         var carry = 0
  17.         runner = nil
  18.         while stack1.count > 0 || stack2.count > 0 || carry > 0{
  19.             let n1 = stack1.count > 0 ? stack1.removeLast().val : 0
  20.             let n2 = stack2.count > 0 ? stack2.removeLast().val : 0
  21.             let sum = carry + n1 + n2
  22.             let node = ListNode(sum % 10)
  23.             carry = sum / 10
  24.             node.next = runner
  25.             runner = node
  26.         }
  27.         return runner
  28.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement