算法-给你两个非空的链表,请你将两个数相加,并以相同形式返回一个表示和的链表
1.题目描述
https://leetcode.cn/problems/add-two-numbers/?envType=study-plan-v2&envId=top-100-liked
给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。
请你将两个数相加,并以相同形式返回一个表示和的链表
示例1
输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.
难度: 中等
2.解法
思路:
1.变量carry存储是否有进位
2.python内建函数divmod(val,10)返回除数和余数
class ListNode():
'''
链表
'''
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution(object):
def addTwoNumbers(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
head = cur = ListNode()
carry = 0
while carry or l1 or l2:
val = carry
if l1: l1, val = l1.next, l1.val + val
if l2: l2, val = l2.next, l2.val + val
carry, val = divmod(val, 10)
cur.next = ListNode(val)
cur = cur.next
return head.next
时间复杂度O(N) 空间复杂度O(1)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
2018-05-24 Django-分页