02.两数相加(难度:中等)

分享
开发者 2024-9-4 04:44:08 96 0 来自 中国
两数相加(难度:中等)

标题形貌:

给出两个 非空 的链表用来表现两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,而且它们的每个节点只能存储 一位 数字。
假如,我们将这两个数相加起来,则会返回一个新的链表来表现它们的和。
您可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例:
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8缘故原由:342 + 465 = 807解法:

按照我们小学学习的两个多位数的相加,从各位开始,各位与各位相加,假如大于10则进位,生存其与10的余数。接下来十位,百位,亦是云云。直到有一个数的没有更高位,则把另一个数的剩余高位补到效果的高位,此时须要判断,是否有进位,如有进位,还需把进位也加之到效果上。
这道题紧张是对链表的一些操作。
详细步调:
(1)判断两个链表的所取结点至少有一个不为null(表现相加还未竣事)
(2)假如有一个链表索取结点已经为null了,则让其所取数为0,便于另一个数相加。
(3)相加两个所取的数字之和sum
(4)计算sum对10的商值,即现在的进位。
(5)在效果链表上生存当前sum对10的余数,即效果数字的当前位。
(6)将两个链表的指针都指向下一个结点。继续从第(1)步循环举行,直到不满意(1)的条件。
(7)判断是否两数相加竣事后仍存在进位,假如有,则在效果链表上创建一个新的结点,用来生存末了一次的进位(效果界限判断)。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-12-23 01:36, Processed in 0.171128 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表