【LeetCode】【refine 2】题号:*2. 两数相加

every blog every motto: You will never know unless you try

0. 前言

冲冲冲

1. 正文

1.1 题目

在这里插入图片描述

1.2 代码

# 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:
        start_point = ListNode(0)  # 链表的头结点
        r = start_point  # 指针,用于在不同节点间保存数据
        # print(r.val)

        carry = 0  # 进位
        while (l1 or l2):

            x1 = l1.val if l1 else 0
            x2 = l2.val if l2 else 0

            s = carry + x1 + x2
            # print('s:', s)
            carry = s // 10  # 新的进位
            r.next = ListNode(s % 10)  # 当前位的值
            r = r.next  # 下一个节点
            if l1 != None: l1 = l1.next
            if l2 != None: l2 = l2.next
        if carry > 0:
            r.next = ListNode(1)
        return start_point.next

1.3 结果

在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_39190382/article/details/119857285