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

3.两数相加 - 链表

文章目录

  • 题目简介
  • 题目解答
    • 代码:
  • 题目链接

大家好,我是晓星航。今天为大家带来的是 两数相加 相关的讲解!😀

题目简介

image-20240329231206850

image-20240329231219631

image-20240329231226741

题目解答

通过题目给的第一个示例来解析

image-20240329231414021

图解如下:

image-20240329232943855

l1的2和l2的5首先相加变为7

image-20240329233001008

这里相加结果为7,进位为0

image-20240329233017616

4和6相加结果是0,但是进位为1

image-20240329233139013

最后一位由3和4相加再加上一个进位1就是8

实战思路:

image-20240329234552853

第一步,l1和l2不为空继续走,而头结点为空,所以直接将头节点和tail节点放入sum余10的结果值7中,sum=l1.val+l2.val+carry

image-20240329234806843

第二步,l1和l2不为空继续走,而头结点不为空,因此head不变,将sum余10的结果值0存在tail.next中,并将tail等于tail.next储存链表结构,此时进位carry为1。

image-20240329235134104

第三步,l1和l2不为空继续走,而头结点不为空,因此head不变,将sum余10的结果值7存在tail.next中,而此时进位为1因此存入tail.next的值为8,最后tail等于tail.next储存链表结构就形成了一个链表

image-20240329235341689

代码:

class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode head = null, tail = null;int carry = 0;while (l1 != null || l2 != null) {int n1 = l1 != null ? l1.val : 0;int n2 = l2 != null ? l2.val : 0;int sum = n1 + n2 + carry;if (head == null) {head = tail = new ListNode(sum % 10);} else {tail.next = new ListNode(sum % 10);tail = tail.next;}carry = sum / 10;if (l1 != null) {l1 = l1.next;}if (l2 != null) {l2 = l2.next;}}if (carry > 0) {tail.next = new ListNode(carry);}return head;}
}

题目链接

2. 两数相加 - 力扣(LeetCode)

这里查找了一篇关于链表的文章,觉得很不错便将链接记录下来了

java ListNode 链表 - 一文搞懂 - 博客园 (cnblogs.com)

感谢各位读者的阅读,本文章有任何错误都可以在评论区发表你们的意见,我会对文章进行改正的。如果本文章对你有帮助请动一动你们敏捷的小手点一点赞,你的每一次鼓励都是作者创作的动力哦!😘

http://www.lryc.cn/news/328982.html

相关文章:

  • iptables 与 firewalld 防火墙
  • Taskflow:异步任务(Asynchronous Tasking)
  • 学习鸿蒙基础(9)
  • spring boot的小数位丢失.00 或者.0
  • nginx如何清理页面缓存
  • 深度学习pytorch——经典卷积网络之ResNet(持续更新)
  • react 面试题(2024 最新版)
  • JVM(三)——字节码技术
  • HarmonyOS 应用开发之Stage模型绑定FA模型ServiceAbility
  • 高效解决Visual Studio无法识别到自定义头文件
  • [数据集][目标检测]道路行人车辆坑洞锥形桶检测数据集VOC+YOLO格式6275张4类别
  • 风险与收益
  • linux服务器安装mysql8
  • 亚信安全荣获2023年度5G创新应用评优活动两项大奖
  • linux之忘记root密码
  • jspm智能仓储系统
  • 深入理解数据结构(3):栈和队列详解
  • 单例设计模式(3)
  • 将jupyter notebook文件导出为pdf(简单有效)
  • 使用INSERT INTO ... ON DUPLICATE KEY UPDATE批量插入更新导入excel数据的实践场景应用
  • AJAX-项目优化(目录、基地址、token、请求拦截器)
  • SQLite中的动态内存分配(五)
  • 快速上手Spring Cloud 十一:微服务架构下的安全与权限管理
  • 如何简化多个 if 的判断结构
  • 发掘服务器硬件优势:怎样有效管理、维护、更新
  • SD卡备份和烧录ubuntu20.04镜像
  • 短视频账号矩阵系统/开发 -- -- -- 蒙太奇算法上线
  • Docker Stack(堆栈) 部署多服务集群,多服务编排
  • 全国青少年软件编程(Scratch)等级考试二级考试真题2023年12月——持续更新.....
  • python基础——异常捕获【try-except、else、finally】