网易首页 > 网易号 > 正文 申请入驻

LeetCode题集-2 - 两数相加

0
分享至

解法一:递归法解法二:迭代法

这个题目是什么意思呢?简单来说就是把两个链表平铺开,头节点对齐,然后从头开始相同的节点相加,满10则进位,进位值与下个节点继续相加,当一个链表没有节点时候则可以把没有节点当做0继续与有节点的链表继续相加。具体示例如下:

到这里不知道你是否已经有解题思路了呢?

我第一反应就是递归,为什么?想想题目,对两个链表相同节点位置值按顺序求值,第一个算完算第二个,以此类推直至所有节点计算完成,这不正好使用递归吗,定义一个方法计算两个节点和,然后以头节点的下个节点作为递归点,即计算头节点后,头节点的下个节点计算直接调用自身方法直至所有节点计算完成,具体代码如下:

public static ListNode AddTwoNumbersRecursion(ListNode l1, ListNode l2)
return AddTwoNumbersRecursive(l1, l2, 0);
private static ListNode AddTwoNumbersRecursive(ListNode l1, ListNode l2, int carry)
//当两个链表节点都为空并且进位值等于0,则结束递归
if (l1 == null && l2 == null && carry == 0)
return null;
//以进位值为初始值定义两节点和变量,
var sum = carry;
//如果l1节点不为空,则累加其节点值,并且把其下个节点赋值给自身,用于下次迭代
if (l1 != null)
sum += l1.val;
l1 = l1.next;
//如果l2节点不为空,则累加其节点值,并且把其下个节点赋值给自身,用于下次迭代
if (l2 != null)
sum += l2.val;
l2 = l2.next;
//计算进位值
carry = sum / 10;
//以当前位值,创建下一个节点
return new ListNode(sum % 10)
//递归点
next = AddTwoNumbersRecursive(l1, l2, carry)

然后我们运行代码验证一下,结果如下:

我们知道因为每次递归都会需要额外的栈空间,因此深度递归可能会引发一系列性能问题,因此我们是否还有其他办法呢?

递归有个同义词叫迭代,而迭代只需要在一个循环里重复执行一个计算即可,这样就可以避免递归产生的问题。

因此我们只需要把递归方法改造成迭代方法即可,里面的解题思路基本都是一样的,只不过是不通的写法。代码如下:

public static ListNode AddTwoNumbersIteration(ListNode l1, ListNode l2)
//创建头节点,即第一位计算结果
var head = new ListNode(0);
//用于迭代节点
var current = head;
//初始化进位值
int carry = 0;
//当两个链表节点都不为空并且进位值不等于0,则继续迭代
while (l1 != null || l2 != null || carry != 0)
//以进位值为初始值定义两节点和变量,
var sum = carry;
//如果l1节点不为空,则累加其节点值,并且把其下个节点赋值给自身,用于下次迭代
if (l1 != null)
sum += l1.val;
l1 = l1.next;
//如果l2节点不为空,则累加其节点值,并且把其下个节点赋值给自身,用于下次迭代
if (l2 != null)
sum += l2.val;
l2 = l2.next;
//计算进位值
carry = sum / 10;
//以当前位值,创建下一个节点
current.next = new ListNode(sum % 10);
//把下个节点赋值给当前迭代节点,继续下次迭代
current = current.next;
//返回实际结果链表的头节点
return head.next;

运行结果如下:

对于这一题核心解题思路是一样,问题在于如何选择方法,递归有递归的好处,迭代有迭代的好处,因此要根据自己实际情况进行选择。

下面对递归和迭代做个点单对比:

1 递归:代码更简洁直观,逻辑更接近问题的自然描述易于理解;但是递归会消耗更多内存,深度递归可能会导致栈溢出。

2 迭代:节省内存,性能会更好;但是代码更难理解。

题目到这里就做完了,但是不知道有没有人会有这样的疑惑?

在迭代法中,链表head是一个引用类型,并且被赋值给了链表current,而链表current在迭代中不停的被current.next覆盖,那么为什么这个覆盖过程没有影响到链表head?导致head为整个链表的最后一个节点?最后返回的head.next还是正确的答案?

你知道为什么吗?

:测试方法代码以及示例源码都已经上传至代码库,有兴趣的可以看看。https://gitee.com/hugogoos/Planner

声明:个人原创,仅供参考

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
25岁林妙可惊艳蜕变:丰腴之美,自信如花?

25岁林妙可惊艳蜕变:丰腴之美,自信如花?

娱乐领航家
2026-01-16 22:00:03
毫不知情!浓眉被交易至奇才前竟被蒙在鼓里

毫不知情!浓眉被交易至奇才前竟被蒙在鼓里

大眼瞄世界
2026-02-13 23:13:32
年会老板嫌奖品太差当场生气:谁让发洗衣机的 赶紧再加两万块钱

年会老板嫌奖品太差当场生气:谁让发洗衣机的 赶紧再加两万块钱

闪电新闻
2026-02-14 16:26:36
挣再多钱有啥用,61岁崔培军如今的现状,给所有企业家提了醒

挣再多钱有啥用,61岁崔培军如今的现状,给所有企业家提了醒

云景侃记
2026-02-03 22:26:23
美媒:没有人希望中国人有能力设计和制造自己的喷气发动机!

美媒:没有人希望中国人有能力设计和制造自己的喷气发动机!

蜉蝣说
2026-02-14 15:33:35
中美谈了60分钟,鲁比奥赔笑脸,美方松开王毅的手,对华作出承诺

中美谈了60分钟,鲁比奥赔笑脸,美方松开王毅的手,对华作出承诺

东极妙严
2026-02-14 15:51:28
特斯拉廉价版Model 3亚洲开卖,国内或降至20万内

特斯拉廉价版Model 3亚洲开卖,国内或降至20万内

沙雕小琳琳
2026-02-14 21:44:44
“不给人算命,只给国算命”的灵媒阮氏虹说2026:红黄冲天、蓝白坠渊,三光三煞,火马绝运

“不给人算命,只给国算命”的灵媒阮氏虹说2026:红黄冲天、蓝白坠渊,三光三煞,火马绝运

神奇故事
2026-02-13 23:31:12
杨瀚森:全明星周末最期待与约基奇聊天,我等不及要亲他了

杨瀚森:全明星周末最期待与约基奇聊天,我等不及要亲他了

懂球帝
2026-02-14 12:20:02
中戏院长刚落马,表演系三把火全烧了,毕业照里缺了谁?

中戏院长刚落马,表演系三把火全烧了,毕业照里缺了谁?

金哥说新能源车
2026-02-14 17:50:43
不满黎智英被判20年,英国展开报复,决定放2.6万香港人“润英”

不满黎智英被判20年,英国展开报复,决定放2.6万香港人“润英”

叮当当科技
2026-02-13 13:22:26
报复一个人最狠的方法,不是翻脸,不是打压,而是佛家三句话

报复一个人最狠的方法,不是翻脸,不是打压,而是佛家三句话

瓜哥的动物日记
2026-02-14 00:59:40
我国唯一无法征服的大江,水能超三峡,却没有一座水电站

我国唯一无法征服的大江,水能超三峡,却没有一座水电站

阿諢体育
2026-02-14 12:24:13
体操冠军傅佳丽跳楼后续:曾被勒索4万礼金,逢年过节都要送礼

体操冠军傅佳丽跳楼后续:曾被勒索4万礼金,逢年过节都要送礼

复转小能手
2026-02-13 20:23:52
俄罗斯对中国的最大贡献,就是让整个西方彻底误判了中国

俄罗斯对中国的最大贡献,就是让整个西方彻底误判了中国

混沌录
2026-02-13 22:05:17
电动车或将淘汰,替代品已出现,不充电不怕冷,续航超过100公里

电动车或将淘汰,替代品已出现,不充电不怕冷,续航超过100公里

小怪吃美食
2026-02-13 16:02:11
澳洲网红夫妇花3.2万美金买机票+湖人门票 结果老詹和东契奇缺席

澳洲网红夫妇花3.2万美金买机票+湖人门票 结果老詹和东契奇缺席

Emily说个球
2026-02-14 19:50:36
1小时会晤结束,中美谈妥?华春莹离开谈判桌,王毅留下一份清单

1小时会晤结束,中美谈妥?华春莹离开谈判桌,王毅留下一份清单

东极妙严
2026-02-14 21:05:41
德国人点评高铁:日本优秀,法国先进,只有中国是用了4个字评价

德国人点评高铁:日本优秀,法国先进,只有中国是用了4个字评价

流史岁月
2026-02-14 09:29:56
女星周秀娜回应香港富豪李家诚控告:深感委屈,将委托律师跟进

女星周秀娜回应香港富豪李家诚控告:深感委屈,将委托律师跟进

封面新闻
2026-02-14 02:17:08
2026-02-14 22:39:00
IT规划师
IT规划师
热爱编程,追求最佳实践,喜欢思想的碰撞
78文章数 906关注度
往期回顾 全部

科技要闻

字节跳动官宣豆包大模型今日进入2.0阶段

头条要闻

马克龙反击"欧洲衰落"论调:所有人都应以我们为榜样

头条要闻

马克龙反击"欧洲衰落"论调:所有人都应以我们为榜样

体育要闻

最戏剧性的花滑男单,冠军为什么是他?

娱乐要闻

春晚第五次联排路透 明星积极饭撒互动

财经要闻

谁在掌控你的胃?起底百亿"飘香剂"江湖

汽车要闻

星光730新春促销开启 80天销量破2.6万台

态度原创

教育
游戏
旅游
艺术
公开课

教育要闻

有学生提了255分!离高考不到4个月了,艺考生文化课赶紧补!

搬砖人速进!游戏版《致富经》来了,全靠这款游戏给的经验

旅游要闻

灞陵桥三国灯会刷屏全网,23天狂欢,把千年三国过成烟火大年!

艺术要闻

418米!浙江最高楼,即将“破土而出”

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版