题目描述
实现思路:反转链表-转为字符串-转整-求和-转为链表
首先想到的是先将链表转换为可以相加的整数,比如2 -> 4 -> 3转换为342,再对其求和,最后再把它转换为链表。
代码如下
# 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:
pre1=None
cur1=l1
while cur1:
temp1=cur1.next
cur1.next=pre1
pre1=cur1
cur1=temp1
pre2=None
cur2=l2
while cur2:
temp2=cur2.next
cur2.next=pre2
pre2=cur2
cur2=temp2
s1=''
s2=''
while pre1 !=None:
s1+=str(pre1.val)
pre1=pre1.next
while pre2 !=None:
s2+=str(pre2.val)
pre2=pre2.next
sum_num=str(int(s1)+int(s2))
n=len(sum_num)
result=ListNode(int(sum_num[0]))
for i in range(1,n):
result=ListNode(int(sum_num[i]),result)
return result