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; } * } */ class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode dummyHead = new ListNode(-1); ListNode node = dummyHead; int carry = 0; while (l1 != null || l2 != null) { int sum = 0; int x = l1 == null ? 0 : l1.val; int y = l2 == null ? 0 : l2.val; sum = x + y + carry; carry = sum / 10; sum = sum % 10; node.next = new ListNode(sum); node = node.next; if (l1 != null) l1 = l1.next; if (l2 != null) l2 = l2.next; } if (carry != 0) { node.next = new ListNode(1); } return dummyHead.next; } }
。。