
Leetcode - 2. 两数相加——链表
初始化一个头节点,用于记录最终结果。 使用两个指针分别遍历两个链表,同时处理相加过程。 在当前节点处计算当前位的数字之和,加上可能的进位。 将当前位的和的个位数作为当前节点的值,进位(如果有的话)保留到下一位处理。 移动指针到下一个节点,继续处理下一位。 处理完所有节点后,如果有剩余的进位,添加到结果中。 初始化:创建一个新的链表头节点 循环处理:只要有一个链表的节点未被处理,继续循环。 获取当前位的数字:如果当前链表为空,则取值为0,否则取当前节点的值。 计算和与进位:将当前位的数字相加,加上进位,计算新的进位 创建新的节点:将当前位的值创建为新的节点并连接到当前链表尾部。 移动指针:根据链表是否为空,移动指针到下一个节点。 处理剩余进位:如果循环结束后还有进位,添加到结果中。
发布日期:2021-05-07 21:20:12
浏览次数:18
分类:精选文章
本文共 1519 字,大约阅读时间需要 5 分钟。
给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字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]
方法思路
该问题要求我们对两个逆序存储的数字链表进行相加。每个链表中的节点存储一个数字,链表的头节点存储最低有效位,末尾节点存储最高有效位。与常规的链表相加不同,这里需要考虑逆序存储的特点。
具体步骤如下:
解决代码
class Solution_2 { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode pre = new ListNode(0); ListNode cur = pre; int flag = 0; while (l1 != null || l2 != null) { int x = l1 == null ? 0 : l1.val; int y = l2 == null ? 0 : l2.val; int sum = x + y + flag; flag = sum / 10; sum = sum % 10; cur.next = new ListNode(sum); if (l1 != null) { l1 = l1.next; } if (l2 != null) { l2 = l2.next; } cur = cur.next; } if (flag == 1) { cur.next = new ListNode(flag); } return pre.next; }}
代码解释
pre
,用于记录最终结果,cur
指针从pre
开始遍历。flag
和当前位的值sum
。该方法确保了两个逆序存储的数字链表相加的正确性,并且结果以逆序形式返回,符合题目要求。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月03日 18时44分16秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
create-react-app路由的实现原理
2019-03-05
Linux环境变量配置错误导致命令不能使用(杂谈)
2019-03-05
openstack安装(九)网络服务的安装--控制节点
2019-03-05
shell编程(六)语言编码规范之(变量)
2019-03-05
vimscript学习笔记(二)预备知识
2019-03-05
Android数据库
2019-03-05
HTML基础,块级元素/行内元素/行内块元素辨析【2分钟掌握】
2019-03-05
STM8 GPIO模式
2019-03-05
23种设计模式一:单例模式
2019-03-05
Qt中的析构函数
2019-03-05
C语言实现dijkstra(adjacence matrix)
2019-03-05
三层框架+sql server数据库 实战教学-徐新帅-专题视频课程
2019-03-05
【单片机开发】智能小车工程(经验总结)
2019-03-05
【单片机开发】基于stm32的掌上游戏机设计 (项目规划)
2019-03-05
C++&&STL
2019-03-05
子集(LeetCode 78)
2019-03-05
微信js-sdk使用简述(分享,扫码功能等)
2019-03-05
mxsrvs支持thinkphp3.2伪静态
2019-03-05
c++中ifstream及ofstream超详细说明
2019-03-05