2. Add Two Sum 两数相加
两条非空链表,分别代表两个非负整数。数字逆序,每个节点只含有单个数字。将两个数相加,返回一个链表。
数不以0开头,除非数本身就是0.
input: (2->4->3) + (5->6->4)
output: 7-> 0-> 8
解释: 342 + 465 = 807
python 版本
def addTwoNumbers(l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
dummyhead = ListNode(0)
curr = dummyhead
p, q = l1, l2
carry = 0
while(p!=None or q!=None):
x = p.val if p!=None else 0
y = q.val if q!=None else 0
sum = carry+x+y
carry = sum//10
curr.next = ListNode(sum%10)
curr = curr.next
if p!=None:
p=p.next
if q!=None:
q=q.next
if carry>0:
curr.next = ListNode(carry)
return dummyhead.next
最近在学习JavaScript做前端,所以后来又做了个js版本的。
JavaScript 版本: