调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
中等
相关标签
相关企业
提示

给定两个用链表表示的整数,每个节点包含一个数位。

这些数位是反向存放的,也就是个位排在链表首部。

编写函数对这两个整数求和,并用链表形式返回结果。

 

示例:

输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295
输出:2 -> 1 -> 9,即912

进阶:思考一下,假设这些数位是正向存放的,又该如何解决呢?

示例:

输入:(6 -> 1 -> 7) + (2 -> 9 -> 5),即617 + 295
输出:9 -> 1 -> 2,即912
通过次数
77K
提交次数
164K
通过率
47.0%

相关标签

相关企业

提示 1
当然,你可以将链表转换为整数,计算总和,然后将其转换回新的链表。如果你在面试中这样做,面试官可能会接受答案,然后看看你在不能将其转换为数字然后返回的情况下,还能否做到这一点。

提示 2
尝试递归。假设你有两个链表,A = 1 -> 5 -> 9(代表951)和B = 2 -> 3 -> 6 -> 7(代表7632),以及一个操作链表其余部分的函数(5 -> 9和3 -> 6 -> 7)。你能用这个来创建求和方法吗?sum(1 -> 5 -> 9, 2 -> 3 -> 6 -> 7)和sum(5 -> 9, 3 -> 6 -> 7)之间有何关系?

提示 3
确保你考虑到了链表的长度不同的情况。

提示 4
你的算法在形如9 -> 7 -> 8和6 -> 8 -> 5的链表上工作吗?仔细检查一下。

提示 5
对于后续问题:问题是,当链表的长度不一样时,一个链表的首部可能代表1000的位置,而另一个链表代表10的位置。如果你把它们做的一样长呢?有没有方法修改链表来做到这一点,而不改变它所代表的值?

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
l1 =
[2,4,3]
l2 =
[5,6,4]
Source