两数相加
本题用链表的尾插法。从链表头开始向后走,用 c 累加两个数对应位置上的数值,将结果模 10 存入 new 出来的一个 ListNode,用尾插法插入到结果中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { int c = 0; auto dummy = new ListNode(-1); auto h = dummy; while (l1 || l2 || c) { if (l1) { c += l1->val; l1 = l1->next; } if (l2) { c += l2->val; l2 = l2->next; } h = h->next = new ListNode(c % 10); c /= 10; } return dummy->next; } };
|