Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func addTwoNumbers(_ l1: ListNode?, _ l2: ListNode?) -> ListNode? {
- if l1 == nil && l2 == nil {return nil}
- var stack1 = [ListNode]()
- var runner = l1
- while runner != nil {
- stack1.append(runner!)
- runner = runner!.next
- }
- var stack2 = [ListNode]()
- runner = l2
- while runner != nil {
- stack2.append(runner!)
- runner = runner!.next
- }
- var carry = 0
- runner = nil
- while stack1.count > 0 || stack2.count > 0 || carry > 0{
- let n1 = stack1.count > 0 ? stack1.removeLast().val : 0
- let n2 = stack2.count > 0 ? stack2.removeLast().val : 0
- let sum = carry + n1 + n2
- let node = ListNode(sum % 10)
- carry = sum / 10
- node.next = runner
- runner = node
- }
- return runner
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement