1、正向
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
s1 = ''
s2 = ''
while l1:
s1 = s1 + str(l1.val)
l1 = l1.next
while l2:
s2 = s2 + str(l2.val)
l2 = l2.next
Str = str(int(s1) + int(s2))
lens = len(Str)
node = ListNode(int(Str[0]))
cur = node
for i in range(1,lens):
node.next = ListNode(int(Str[i]))
node = node.next
return cur
2、反向
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
head = ListNode(0)
carry = 0
node = head
while l1 or l2:
if not l1:
node.next = l2
l1 = ListNode(0)
if not l2:
node.next = l1
l2 = ListNode(0)
carry = carry + l1.val + l2.val
node.next = ListNode(carry%10)
node = node.next
carry = carry //10
l1 = l1.next
l2 = l2.next
if carry:
node.next = ListNode(carry)
return head.next