LeetCode 2 - 两数相加 是一道经典链表操作问题,经常作为面试中基础题的变体被考察。掌握多种解法及其变体,并熟悉其核心思路和模板代码,可以快速备战相关链表或大数计算问题。
题目描述
给定两个非空链表,它们代表两个非负整数,每个节点保存一个数字,数字按 逆序存储(个位在链表头部),求两个数的和并返回一个新的链表,表示其逆序和。
- 输入:两个链表,
l1
表示整数 a,l2
表示整数 b。 - 输出:表示结果 a + b 的链表。
示例:
输入: l1 = [2,4,3], l2 = [5,6,4]
输出: [7,0,8]
解释: 342 + 465 = 807
解法及其分析
解法 1:模拟加法(逐位相加)
思路
- 链表表示逆序存储的数字,相当于按从低位到高位逐位对齐相加,因此直接模拟两数加法过程:
- 遍历两个链表,从头到尾逐位相加,