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.mzph.cn/news/783184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu18.04安装wireshark

安装wireshark 环境Ubuntu18.04 1.使用root用户进行安装 2.将 wireshark-dev/stable PPA 添加到系统的软件源列表中。系统就可以从该PPA获取Wireshark软件包及其更新了。 apt-add-repository ppa:wireshark-dev/stable3.确保你系统上的软件包信息是最新的,这样在…

Yarn - macOS 上安装使用

文章目录 关于 YarnYarn 工作流程安装检查安装、查看版本 常用命令 关于 Yarn Yarn 是一款成熟的开源软件包管理器,用于管理 JavaScript 项目中的依赖关系。 官网:https://yarnpkg.comgithub : https://github.com/yarnpkg官方文档:https:/…

高炉项目中DeviceNET到Ethernet的转换奥秘

在工业自动化的世界中,高炉项目中的数据通信至关重要。其中DeviceNET和Ethernet作为两种主流的网络协议,扮演着不可或缺的角色。它们之间的转换不仅仅是技术上的桥梁,更是实现信息高效传递的关键。今天,我们就来揭开从DeviceNET到…

数据结构——lesson13排序之计数排序

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

Java 中的单例模式

引言: 在 Java 编程中,单例模式是一种常见的设计模式,它保证一个类只能创建一个实例,并提供一个全局访问点。单例模式在很多场景下都非常有用,比如线程池、日志系统、数据库连接池等。本文将详细介绍 Java 中单例模式的…

操作教程|在MeterSphere中通过SSH登录服务器的两种方法

MeterSphere开源持续测试平台拥有非常强大的插件集成机制,用户可以通过插件实现平台能力的拓展,借助插件或脚本实现多种功能。在测试过程中,测试人员有时需要通过SSH协议登录至服务器,以获取某些配置文件和日志文件,或…

知乎:多云架构下大模型训练,如何保障存储稳定性?

知乎,中文互联网领域领先的问答社区和原创内容平台,2011 年 1 月正式上线,月活跃用户超过 1 亿。平台的搜索和推荐服务得益于先进的 AI 算法,数百名算法工程师基于数据平台和机器学习平台进行海量数据处理和算法训练任务。 为了提…

在 Linux中解压,压缩命令详解

在 Linux中解压,压缩命令详解 在 Linux中解压,压缩命令详解 🐧💻摘要引言正文内容解压命令详解1. 解压 .zip 文件unzip 命令 2. 解压 .tar.gz、.tar.bz2、.tar.xz 文件tar 命令 3. 解压其他格式的压缩文件gzip 命令bzip2 命令 压…

哥本哈根Major后steam搬砖该何去何从?

都在问我哥本哈根major比赛过后市场会不会崩盘呢?说实话,我是不喜欢预测市场的,其实是没那个本事而已。若真有这个预测市场走势的本事,我还用坐在这里每天苦哈哈的搬砖吗?我直接干囤卡囤号的倒卖生意岂不早发财了&…

宝塔面板与1Panel的详细对比分析

在当今的服务器管理领域,宝塔面板和1Panel都是备受欢迎的管理工具。它们各自具有独特的特点和优势,同时也存在一些局限性。本文将从多个维度对比这两款产品,帮助用户根据自身需求做出更合适的选择。 宝塔面板 优点 易用性:宝塔…

九州金榜|孩子厌学应该怎么引导?

孩子厌学,这是许多家长都可能面临的问题。对于这个问题,我们首先要明白,厌学并非孩子的错,而是他们在成长过程中所遇到的一种困境。那么,作为家长,我们应该如何引导他们走出这个困境呢?下面九州…

深入浅出:探索Hadoop生态系统的核心组件与技术架构

目录 前言 HDFS Yarn Hive HBase Spark及Spark Streaming 书本与课程推荐 关于作者: 推荐理由: 作者直播推荐: 前言 进入大数据阶段就意味着 进入NoSQL阶段,更多的是面向OLAP场景,即数据仓库、BI应用等。 …

【博弈论——2探究纳什均衡】

1.纳什均衡 纳什均衡(Nash Equilibrium),由美国数学家约翰纳什(John Nash)提出,是博弈论中的一个重要概念,用来描述在一个非合作博弈中,各个参与者在考虑了其他所有参与者策略的前提…

分享 | 顶刊高质量论文插图配色(含RGB值及16进制HEX码)(第三期)

第三期顶刊绘图配色分享来啦!这一期做的细心了一点,把双色配色、三色配色、四色配色、多色配色分开展示,大家用起来会更方便一点: 这次还是用之前写了一个多小时的提取论文图片颜色并得出RGB值和16进制码并标注在原图的代码&…

探索c++:string常用接口 迷雾

个人主页:日刷百题 系列专栏:〖C/C小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 🌎欢迎各位→点赞👍收藏⭐️留言📝 ​ ​ 一、string类 这里我们对string类进行一个简单的总结: string是表示字符串的字…

矩阵间关系的建立

参考文献 2-D Compressive Sensing-Based Visually Secure Multilevel Image Encryption Scheme 加密整体流程如下: 我们关注左上角这一部分: 如何在两个图像之间构建关系,当然是借助第3个矩阵。 A. Establish Relationships Between Different Images 简单说明如下: …

R语言 | 上下双向柱状图

1. 效果图 2. 代码 # 生成测试数据 difdata.frame(labelspaste0("pathway", 1:3),upc(30,15,1),downc(10,20,40) ) rownames(dif)dif$labels dif#变形 difreshape2::melt(dif) dif# 绘图 ggplot(dif, aes(xlabels, yifelse(variable"up", value, -value), …

react 面试题(2024 最新版)

1. 对 React 的理解、特性 React 是靠数据驱动视图改变的一种框架,它的核心驱动方法就是用其提供的 setState 方法设置 state 中的数据从而驱动存放在内存中的虚拟 DOM 树的更新 更新方法就是通过 React 的 Diff 算法比较旧虚拟 DOM 树和新虚拟 DOM 树之间的 Chan…

单例设计模式(3)

单例模式(3) 实现集群环境下的分布式单例类 如何理解单例模式中的唯一性? 单例模式创建的对象是进程唯一的。以springboot应用程序为例,他是一个进程,可能包含多个线程,单例代表在这个进程的某个类是唯一…