zoukankan      html  css  js  c++  java
  • python刷LeetCode:2.两数相加

    难度等级:中等

    题目描述:

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

    如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

    您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

    示例:

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/add-two-numbers
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解题思路:

    本题主要是涉及链表的定义及操作:更新链表节点,更新值

    解题代码:

    # 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:
          """
          输入l1和l2两个结点,返回题目要求的结点
          """
          n = l1.val + l2.val  # 将结点第一个值相加
          l3 = ListNode(n % 10)
          l3.next = ListNode(n // 10)
          p1 = l1.next
          p2 = l2.next
          p3 = l3
          while True:
            if p1 and p2:
              sum = p1.val + p2.val + p3.next.val
              p3.next.val = sum % 10
              p3.next.next = ListNode(sum // 10)
              p1 = p1.next
              p2 = p2.next
              p3 = p3.next
            elif p1 and not p2:
              sum = p1.val + p3.next.val
              p3.next.val = sum % 10
              p3.next.next = ListNode(sum // 10)
              p1 = p1.next
              p3 = p3.next
            elif not p1 and p2:
              sum = p2.val + p3.next.val
              p3.next.val = sum % 10
              p3.next.next = ListNode(sum // 10)
              p2 = p2.next
              p3 = p3.next
            else:
              if p3.next.val == 0:
                p3.next = None
              break
          return l3
  • 相关阅读:
    归并排序算法
    交换排序算法
    插入排序算法
    DASCTF2021五月赛
    第二届newsctf
    山西省赛
    2021广东省第一届网络安全竞赛
    2021 DozerCTF
    2021-HSCTF re
    buuctf-re (持续更新)
  • 原文地址:https://www.cnblogs.com/jaysonteng/p/12342215.html
Copyright © 2011-2022 走看看