当前位置:网站首页>[LeetCode—Question 2 Sum of Two Numbers Detailed Code Explanation ] The source code is attached, which can be copied directly
[LeetCode—Question 2 Sum of Two Numbers Detailed Code Explanation ] The source code is attached, which can be copied directly
2022-08-03 10:53:00 【DJL_new_life】
(点击跳转即可哦)
有关于链表的学习哦
LeetCode_2.两数相加
题目:
给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字.
请你将两个数相加,并以相同形式返回一个表示和的链表.
你可以假设除了数字 0 之外,这两个数都不会以 0 开头.
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-two-numbers
每个链表中的节点数在范围 [1, 100] 内
0 <= Node.val <= 9
题目数据保证列表表示的数字不含前导零
示例:

输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.
思路:
在 l1这个链表上进行相加,当节点的数字大于9时,就向下一个节点位置的值加1,若相加后的节点数字小于等于9,直接进行下一个节点的相加,一直循环.
当走到l1的最后一个节点,并且l2没有走到最后一个节点,就将l2剩下的节点都连接到l1的后面,此时就要判断 若在 l1的最后一个节点位置相加后的数大于 9,就需要进1,后面的数是l1继承l2的,就直接判断后面的数是否大于9,要不要进1.
全部代码:
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
//拷贝一下l1 头节点的地址,
ListNode one = l1;
//拷贝一下l2 的头节点
ListNode two = l2;
//当两个链表都还存在节点时,进入循环开始相加,题目描述链表至少有一个节点
while (one != null && two != null){
//在l1这个链表上进行相加
one.val = one.val+ two.val;
//若相加的值大于9,就需要向下一位进1
if(one.val > 9){
//只保留个位数,
one.val = one.val % 10;
//此时 one和two 都走完了,但是还需要进1,然后直接返回l1
if(one.next == null && two.next == null){
one.next = new ListNode(1);
return l1;
}
//此时one走到了最后一位,two还没有走到最后一位.
if(one.next == null){
//就把剩下的数直接加到one 的后面,保证l1的长度永远比two长
one.next = two.next;
//断开two 与后面的联系
two.next = null;
}
//one的下一位 加1
one.next.val += 1;
}else {
// 相加后的val没有大于9,
//若one的下一位为空,则连接two 后面的值.
if(one.next == null){
one.next = two.next;
//断开two后面的联系
two.next = null;
}
}
//同时向后走一个单位,代表个位,十位,百位 对应相加
one = one.next;
two = two.next;
}
//是对 one走到最后一个数,在one 后面直接添加了two 后面的节点的补充.
//此时two为null,并且此时one的值 大于9
while (two == null && one != null){
if(one.val > 9){
one.val = one.val % 10;
//需要向下一位进1,若此时one.next == null,就需要创建一个新的空节点,
// 保证one.next不为null
if(one.next == null){
one.next = new ListNode();
}
//进1
one.next.val += 1;
}
//继续判断下一位数 是否大于9
one = one.next;
}
return l1;
}
要是对大家有所帮助的话,请帮我点个赞吧.
边栏推荐
- Basic using MySQL database
- Binary search tree (search binary tree) simulation implementation (there is a recursive version)
- Advanced use of MySQL database
- 分布式事务七种解决方案
- 4 g acquisition ModbusTCP turn JSON MQTT cloud platform
- Machine Learning Overview
- 夏季整治百日行动进行时:700余交通安全隐患被揪出
- Web Server 设置缓存响应字段的一些推荐方案
- 再谈“雷克萨斯”安全装置失效!安全手册疑点重重,网友:细思极恐
- MATLAB programming and application 2.7 Structural data and unit data
猜你喜欢

成对连接点云分割
![[Star Project] Little Hat Plane Battle (9)](/img/e3/c7d2728080bcdccc181a7e5c50ee6f.png)
[Star Project] Little Hat Plane Battle (9)

MySQL数据库基本使用

MySQL数据库实战(1)

后台图库上传功能

STM32+OLED显示屏制作指针式电子钟

With strong network, China mobile to calculate excitation surging energy network construction

Who is more popular for hybrid products, depending on technology or market?

How to use outside the PHP command in the container

深度学习100例——卷积神经网络(CNN)实现服装图像分类
随机推荐
ETL data cleaning case in MapReduce
What is the relationship between The Matrix and 6G?
Mysql OCP 74 questions
507. 完美数
苏州大学:从PostgreSQL到TDengine
夏季整治百日行动进行时:700余交通安全隐患被揪出
【无标题】函数,对象,方法的区别
mysql数据库定时备份占用大量线程,导致全局锁表,有啥好的解决方法么
什么是IDE?新手用哪个IDE比较好?
机器学习(公式推导与代码实现)--sklearn机器学习库
GBase 8c分布式数据库,数据如何分布最优?
Enter the SQL Client to create the table, in another node into the SQL Client queries
Pixel mobile phone system
【二分查找详解外加递归写法】附有全部代码
三大产品力赋能欧萌达OMODA5
pixel手机升系统
Classical Architecture and Memory Classification of Embedded Software Components
Advanced use of MySQL database
MySQL database combat (1)
What is the IDE?Novice with which the IDE is better?