• Leetcode 2 两数相加 Python


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

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

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

    示例:

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

     题目介绍还是比较简单,这个题也比较简单,需要注意的就是:

    1. 保持链表完整性,一定要使最后的Next的值为none

    2.进位问题,相加可能会有进位

    最后官方的题解也不能用python3 过题,建议python2,至于原因我一晚上也没弄明白!

    # Definition for singly-linked list.
    # class ListNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.next = None
    
    class Solution(object):
        def addTwoNumbers(self, l1, l2):
            """
            :type l1: ListNode
            :type l2: ListNode
            :rtype: ListNode
            """
            p = l1
            q = l2
            res = ListNode(0)
            r = res
            s = 0 # 进位
            # 当然也可以做成带头结点返回为res.next即可
            while(p!=None or q!=None):
                p_v = 0 if p==None else p.val
                q_v = 0 if q==None else q.val
                r_v = (p_v+q_v+s)%10
                s = (p_v+q_v+s)//10
                r.next = ListNode(r_v)
                r = r.next
                r.next = None
                # 如果不为None的时候继续遍历,否则停止遍历
                p =p if p==None else p.next
                q =q if q==None else q.next
            if s !=0:
                r.next = ListNode(s)
                r = r.next
                r.next = None
            return res.next
  • 相关阅读:
    下载图片
    wx.requestSubscribeMessage
    服务器布置
    网站更换服务器出现加载不了js css文件的问题
    用git创建仓库关联本地项目,又一直上传不上去
    今天发布MVC项目一直找不到页面
    vs nuget找不到包
    vue cli更新
    ExecuteNonQuery()返回受影响行数不适用select语句
    ASP.NET(C#)返回上一页(后退)代码
  • 原文地址:https://www.cnblogs.com/lunatic-talent/p/13499534.html
Copyright © 2020-2023  润新知