自定义的ListNode链表类如下:
package leetcode.editor.cn;
public class ListNode {
int val;
ListNode next;
ListNode(int x){
val =x;
}
}
解法如下:
package leetcode.editor.cn;
public class AddTwoNumbers {
public static void main(String[] args) {
Solution solution = new AddTwoNumbers().new Solution();
}
// leetcode submit region begin(Prohibit modification and deletion)
/**
* 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 dummy = new ListNode(-1);
ListNode cur = dummy;
int carry = 0;
while (l1 != null || l2 != null) {
int d1 = l1 == null ? 0 : l1.val;
int d2 = l2 == null ? 0 : l2.val;
int sum = d1 + d2 + carry;
carry = sum >= 10 ? 1 : 0;
cur.next = new ListNode(sum % 10);
cur = cur.next;
if (l1 != null) l1 = l1.next;
if (l2 != null) l2 = l2.next;
}
if (carry == 1) cur.next = new ListNode(1);
return dummy.next;
}
}
// leetcode submit region end(Prohibit modification and deletion)
}