Leetcode Add Two Numbers解題報告

這個就是鏈表的相加,如果加起來的值大於10,那麼這個節點的值應該%10,還有進位爲/10,最重要的是要保證不指向空指針。。。其他的都挺好理解的,解法跟之前的有一道easy難度的解法很像


/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode ans(0);
        ListNode *tail = &ans;
        int extra = 0;
        while(l1||l2||extra)
        {
            if(l1)
            {
                extra+=l1->val;
                l1 = l1->next;
            }
            if(l2)
            {
                extra+=l2->val;
                l2 = l2->next;
            }
            tail->next = new ListNode(extra%10);
            extra/=10;
            tail = tail->next;
        }
        return ans.next;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章