抱歉,之前没看题,回答错了,补了好久的链表再决定回答该题,
首先,num1 和 num2 要先逆向切片才能相加,然后 num3 也需要逆向切片
其次,l1 和 l2 并不是列表,而是链表,不能直接 for 循环遍历,而是需要 l1.next 指向下一个节点
根据你的代码改造如下:
- # 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:
- data1 = []
- data2 = []
- while l1:
- data1.append(l1.val)
- l1 = l1.next
- while l2:
- data2.append(l2.val)
- l2 = l2.next
- num1 = ''
- num2 = ''
- for i in data1:
- num1 += str(i)
- for j in data2:
- num2 += str(j)
- num1 = num1[::-1]
- num2 = num2[::-1]
- num3 = int(num1) + int(num2)
- num3 = str(num3)
- num3 = num3[::-1]
- res = ListNode(0)
- pPre = res
- for i in num3:
- new = ListNode(int(i))
- pPre.next = new
- pPre = new
- return res.next
复制代码
附上结果图: