力扣-链表-2 两数相加
思路
两个指针同时遍历,维护一个进位值,同时还要维护第一个链表的前序,如果第二个链表比第一个长的时候,利用这个前序指针把第二个链表多余的内容,添加到第一个链表的末尾
代码
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {int value = 0;ListNode cur1 = l1, cur2 = l2;ListNode pre1 = null;while(cur1 != null && cur2 != null){int temp = cur1.val + cur2.val + value;value = temp / 10;cur1.val = temp % 10;pre1 = cur1;cur1 = cur1.next;cur2 = cur2.next;}if(cur1 == null && cur2 != null){pre1.next = cur2;cur1 = cur2;}while(value != 0 || cur1 != null){if(cur1 != null){int temp = cur1.val + value;value = temp / 10;cur1.val = temp % 10;pre1 = cur1;cur1 = cur1.next;}else{ListNode temp = new ListNode(value%10);value = value / 10;pre1.next = temp;pre1 = temp;cur1 = null;}}return l1;}
}