leetcode2.两数相加
本质上就是链表逐个节点对应数字相加,但是需要记录进位数字
/*** 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();ListNode cur = dummyHead;int c = 0;//表示进位while (l1 != null && l2 != null) {int digit = c + l1.val + l2.val;c = digit / 10;cur = cur.next = new ListNode(digit % 10);l1 = l1.next;l2 = l2.next;}while (l1 != null) {int digit = c + l1.val;c = digit / 10;cur = cur.next = new ListNode(digit % 10);l1 = l1.next;}while (l2 != null) {int digit = c + l2.val;c = digit / 10;cur = cur.next = new ListNode(digit % 10);l2 = l2.next;}if (c != 0) {cur = cur.next = new ListNode(c % 10);}return dummyHead.next;}
}