题目:给定两个非空的链接列表表示两个非负的整数,每个列表节点存储整数某一位的数字,采用逆序存储。将两个整数相加结果以链表返回。
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8 Explanation: 342 + 465 = 807.
开始思路:将两个输入整数链表遍历得到两个整数值,相加得到和,再将和转化为链表形式。
实现后发现错误,当链表节点数目过多,转化为整数会溢出。
改进思路:按位相加并考虑进位情况。再就是一些链表操作的细节,定义头指针方便操作。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {