Python中的链表:手把手教你实现基本操作
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def __repr__(self):
return f"{self.val} -> {self.next}"
def addTwoNumbers(l1, l2):
dummy_head = ListNode(0)
current = dummy_head
carry = 0
while l1 or l2 or carry:
val1 = (l1.val if l1 else 0)
val2 = (l2.val if l2 else 0)
carry, out = divmod(val1 + val2 + carry, 10)
current.next = ListNode(out)
current = current.next
l1 = (l1.next if l1 else None)
l2 = (l2.next if l2 else None)
return dummy_head.next
# 示例使用
list1 = ListNode(2, ListNode(4, ListNode(3)))
list2 = ListNode(5, ListNode(6, ListNode(4)))
result = addTwoNumbers(list1, list2)
print(result) # 输出结果: 7 -> 0 -> 8
这段代码定义了一个ListNode
类来表示链表节点,并实现了一个addTwoNumbers
函数来将两个链表表示的数相加。函数使用当前节点和进位来计算下一个节点的值,并更新链表直到没有进位和链表末尾。最后,我们创建了两个链表实例并调用addTwoNumbers
函数,打印出结果。
评论已关闭