AddTwoNumbers You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
publicclassListNode { publicvar val: Int publicvar next: ListNode? publicinit(_val: Int) { self.val = val self.next =nil } }
classSolution { funcaddTwoNumbers(_l1: ListNode?, _l2: ListNode?) -> ListNode? { var l1 = l1 var l2 = l2 var prev =ListNode(0) var carry =0 let head = prev
while l1 !=nil|| l2 !=nil|| carry !=0 { let cur =ListNode(0) let sum = (l2 ==nil?0 : l2!.val) + (l1 ==nil?0 : l1!.val) + carry cur.val = sum %10 carry = sum /10 prev.next = cur prev = cur l1 = l1 ==nil? l1: l1?.next l2 = l2 ==nil? l2: l2?.next }