import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head1 ListNode类 * @param head2 ListNode类 * @return ListNode类 */ public ListNode addInList (ListNode head1, ListNode head2) { // write code here head1 = reverse(head1); head2 = reverse(head2); ListNode dummy = new ListNode(0); ListNode head = dummy; int flag = 0; // 是否存在进位 while (head1 != null || head2 != null) { flag += head1 == null ? 0 : head1.val; flag += head2 == null ? 0 : head2.val; if (head1 != null) head1 = head1.next; if (head2 != null) head2 = head2.next; head.next = new ListNode(flag % 10); head = head.next; flag /= 10; } if (flag != 0) { head.next = new ListNode(flag); } return reverse(dummy.next); } private ListNode reverse(ListNode head) { ListNode pre = null; for (ListNode temp; head != null; head = temp) { temp = head.next; head.next = pre; pre = head; } return pre; } }