思路:
1)flag = 1 表进位,进位代入求和后置0
2)用l1存储数字,l1较短就把l2剩余部分链到l1末尾
犯的错:
1)断链表扫描结束时没有考虑进位
2)长链表扫描结束时也没考虑进位(此时还要生成新结点)
我的代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int flag = 0;
ListNode p1 = l1;
ListNode p2 = l2;
p1.val = p1.val + p2.val;
if(p1.val>=10){
p1.val = p1.val % 10;
flag = 1;
}
while((p1.next != null)&&(p2.next != null)){
p1 = p1.next;
p2 = p2.next;
p1.val =