LeetCode 2 2数相加

这篇博客介绍了如何使用Python实现两个单链表表示的数相加。通过定义ListNode类来构建链表,然后在Solution类中定义addTwoNumbers方法,处理有进位和链表长度不一致的情况,最终返回结果链表的头节点。这种方法巧妙地模拟了两个数相加的过程。
摘要由CSDN通过智能技术生成

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

# 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:
        # 考虑2种情况
        # 1、有进位
        # 2、2个长度不同时
        result = ListNode(0);
        p = result
        i = 0 #进位
        while l1 or l2 or i:
            i += (l1.val if l1 else 0) + (l2.val if l2 else 0)
            p.next = ListNode(i % 10)

            p = p.next
            i = i // 10
            l1 = l1.next if l1 else None
            l2 = l2.next if l2 else None
        return result.next
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值