当前位置: 首页 > news >正文

leetcode-2.两数相加

题目描述

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

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

示例 1:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.

示例 2:

输入:l1 = [0], l2 = [0]
输出:[0]

示例 3:

输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]

思路

1. 循环的条件:l1,l2,进位,至少还有一个有值,就循环下去

2. 链表节点的值由3部分组成:l1.val+l2.val+进位

    2.1 节点的值:3个数的和 % 10

    2.2 进位:3个数的和 // 10 

3. l1,l2,头节点各自next

# Definition for singly-linked list.
class ListNode(object):def __init__(self, val=0, next=None):self.val = valself.next = next
class Solution(object):def addTwoNumbers(self, l1, l2):""":type l1: ListNode:type l2: ListNode:rtype: ListNode"""head = pre = ListNode(-1)val = carry = 0while l1 or l2 or carry > 0:val = carryif l1:val += l1.vall1 = l1.nextif l2:val += l2.vall2 = l2.nextcarry = val // 10head.next = ListNode(val % 10)head = head.nextreturn pre.nextif __name__=='__main__':s=Solution()head1=ListNode(9)phead1=head1data1=[9,9,9,9,9,9]for i in data1:node=ListNode(i)phead1.next=nodephead1=phead1.nexthead2 = ListNode(9)phead2 = head2data2 = [9,9,9]for i in data2:node = ListNode(i)phead2.next = nodephead2 = phead2.nexthead = s.addTwoNumbers(head1,head2)while head:print(head.val)head=head.next

相关文章:

  • 【数据倾斜笔记】
  • Pandas中concat的用法
  • JavaScript:正则表达式
  • 【线性代数】决定张成空间的最少向量线性无关吗?
  • uniapp+echarts开发APP版本教程
  • 5.2 显示窗口的内容(二)
  • JUnit 5和Mockito单元测试
  • css 用多个阴影做出光斑投影的效果 box-shadow
  • 学习笔记-MyBatis的工作原理。
  • 求解拍频的信号特征
  • LeetCode1491. Average Salary Excluding the Minimum and Maximum Salary
  • 【2023年12月18日-12月25日】一周AI咨询更新
  • 昇腾910平台安装驱动、固件、CANN toolkit、pytorch
  • Qt基础之四十三:Qt智能指针(QPointer、QSharedPointer、QWeakPointer和QScopedPointer)
  • 2023前端开发面经大合集
  • 【Leetcode】101. 对称二叉树
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【面试系列】之二:关于js原型
  • 【前端学习】-粗谈选择器
  • Android优雅地处理按钮重复点击
  • Apache Spark Streaming 使用实例
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java|序列化异常StreamCorruptedException的解决方法
  • JavaScript DOM 10 - 滚动
  • JAVA多线程机制解析-volatilesynchronized
  • leetcode46 Permutation 排列组合
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • spring cloud gateway 源码解析(4)跨域问题处理
  • tab.js分享及浏览器兼容性问题汇总
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • Web设计流程优化:网页效果图设计新思路
  • 从零开始学习部署
  • 分布式熔断降级平台aegis
  • 官方解决所有 npm 全局安装权限问题
  • 如何在GitHub上创建个人博客
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 用Canvas画一棵二叉树
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 责任链模式的两种实现
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 数据库巡检项
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #控制台大学课堂点名问题_课堂随机点名
  • #每日一题合集#牛客JZ23-JZ33
  • (+4)2.2UML建模图
  • (1)(1.11) SiK Radio v2(一)
  • (C++17) std算法之执行策略 execution
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454