此题目不算难,但是要将情况考虑全面
/** * 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; } * } */ class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { if(l1==null){ return l2; } if(l2==null){ return l1; } //进位的数字 int carry=0; ListNode head=new ListNode(-1); ListNode pre=head; while(l1!=null&&l2!=null){ int number=l1.val+l2.val+carry; carry=number/10; ListNode node=new ListNode(number%10); pre.next=node; pre=pre.next; l1=l1.next; l2=l2.next; } //对 while(l1!=null){ int number=l1.val+carry; carry=number/10; ListNode node=new ListNode(number%10); pre.next=node; pre=pre.next; l1=l1.next; } while(l2!=null){ int number=l2.val+carry; carry=number/10; ListNode node=new ListNode(number%10); pre.next=node; pre=pre.next; l2=l2.next; } if(carry!=0){ ListNode node=new ListNode(carry); pre.next=node; } return head.next; } }