leetcode 两数相加 中等

 

 

没什么坑点,一个一个挨着加上就行了,注意细节就能 1A。

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode* head, *pre, *ans;
        pre = new ListNode;
        ans = pre;

        int flag = 0;
        while(l1 || l2) {
            head = new ListNode;
            head -> val = ((l1 ? l1 -> val : 0) + (l2 ? l2 -> val : 0) + flag) % 10;
            pre -> next = head;
            pre = head;
            flag = ((l1 ? l1 -> val : 0) + (l2 ? l2 -> val : 0) + flag) / 10;
            if(l1) l1 = l1 -> next;
            if(l2) l2 = l2 -> next;
        }
        if(flag) {
            head = new ListNode;
            head -> val = 1;
            pre -> next = head;
        }
        return ans -> next;
    }
};

 

posted @ 2021-07-25 16:26  rookie_Acmer  阅读(36)  评论(0)    收藏  举报