在Python中加两个数字

假设我们给出了两个非空链表。这两个列表代表两个非负整数。这些数字以相反的顺序存储。它们的每个节点仅包含一位。将两个数字相加,然后将结果作为链表返回。我们假设两个数字不包含任何前导零,除了数字0本身。因此,如果数字为120 + 230,则链接列表将为[0→2→1] + [0→3→2] = [0→5→3] = 350。

为了解决这个问题,我们将按照以下步骤

  • 取两个列表l1和l2。将head和temp初始化为null

  • c:= 0

  • 而l1和l2都是非空列表

    • head.next:=节点和head:=节点

    • head:=节点和temp:=节点

    • 如果l1为非空,则设置:= 0,否则设置:= l1.val

    • 如果l2为非空,则设置b:= 0,否则设置b:= l2.val

    • n:= a + b + c

    • 如果n> 9,则c:= 1否则为0

    • node:=创建一个值为n mod 10的新节点

    • 如果head为null

    • 除此以外

    • l1:= l1的下一个节点(如果l1存在)

    • l2:= l2的下一个节点(如果l2存在)

    • 如果c不为零,则

      • node:=新节点,值为1,位于head:= node的下一个

    • 返回温度

    示例(Python)

    让我们看下面的实现以获得更好的理解

    class ListNode:

       def __init__(self, data, next = None):

          self.val = data

          self.next = next

    def make_list(elements):

       head = ListNode(elements[0])

       for element in elements[1:]:

          ptr = head

          while ptr.next:

             ptr = ptr.next

          ptr.next = ListNode(element)

       return head

    def print_list(head):

       ptr = head

       print('[', end = "")

       while ptr:

          print(ptr.val, end = ", ")

          ptr = ptr.next

       print(']')

    class Solution:

       def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:

          head = None

          temp = None

          c = 0

          while l1 or l2:

             if not l1:

                a= 0

             else:

                a = l1.val

             if not l2:

                b=0

             else:

                b = l2.val

             n = a +b + c

             c = 1 if n>9 else 0

             node = ListNode(n%10)

             if not head:

                head = node

                temp = node

             else:

                head.next = node

                head = node

             l1 = l1.next if l1 else None

             l2 = l2.next if l2 else None

          if c:

             node = ListNode(1)

             head.next = node

          return temp

    ob1 = Solution()l1 = make_list([0,2,1])

    l2 = make_list([0,3,2])

    print_list(ob1.addTwoNumbers(l1, l2))

    输入值

    [0,2,1]

    [0,3,2]

    输出结果

    [0,5,3]

    以上是 在Python中加两个数字 的全部内容, 来源链接: utcz.com/z/316568.html

    回到顶部