题目描述请点击查看LeetCode 题目描述
Python3 代码解答如下:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
l3 = ListNode(0)
head_node = l3
a = 0 #进位数
while l1 is not None or l2 is not None:
x = 0
y = 0
if l1 is not None:
x = l1.val
if l2 is not None:
y = l2.val
print(x, y, a)
suma = x + y + a
a = suma // 10
head_node.val = suma % 10
if l1 is not None:
l1 = l1.next
if l2 is not None:
l2 = l2.next
if l1 is not None or l2 is not None:
head_node.next = ListNode(0)
head_node = head_node.next
if a > 0:
head_node.next = ListNode(a)
return l3
本文提供了一个使用Python3解决LeetCode上经典题目“两数相加”的详细算法实现。通过定义链表节点类并创建解决方案类,文章详细阐述了如何处理两个链表表示的数字相加,并考虑进位的复杂逻辑。
5430

被折叠的 条评论
为什么被折叠?



