LeetCode 2 两数相加

    科技2022-07-21  109

    题意

    使用链表模拟加法,虽然很简单,但是可能还是有一些边界问题需要处理。本来我是不想写的,但是我想着就不要眼高手低了,还是写一下试试,没想到一次就过了。。。。。 有图为证 尴尬。。。。。。

    代码

    class Solution { public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { int len1 = getLen(l1); int len2 = getLen(l2); if (len1 < len2)swap(l1, l2); ListNode* ans = l1; ListNode* curl1 = l1; ListNode* curl2 = l2; while (curl2) { curl1->val += curl2->val; if (curl1->val >=10) { ListNode* curT = curl1; while (curT->val >=10) { if (curT->next == NULL) { curT->next = new ListNode(0); } curT->val -= 10; curT->next->val++; curT = curT->next; } } curl1 = curl1->next; curl2 = curl2->next; } return ans; } int getLen(ListNode* head) { int cnt = 0; while (head) { cnt++; head = head->next; } return cnt; } };
    Processed: 0.010, SQL: 8