美文网首页
2. 两数相加

2. 两数相加

作者: vancymoon | 来源:发表于2021-03-15 23:56 被阅读0次

    https://leetcode-cn.com/problems/add-two-numbers/

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode() : val(0), next(nullptr) {}
     *     ListNode(int x) : val(x), next(nullptr) {}
     *     ListNode(int x, ListNode *next) : val(x), next(next) {}
     * };
     */
    class Solution {
    public:
        ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
            ListNode* dummy_head = new ListNode();
            ListNode* head = dummy_head;
            int acc = 0;
            while (l1 != nullptr || l2 != nullptr) {
                int val1(0), val2(0);
                if (l1 != nullptr) {
                    val1 = l1->val;
                    l1 = l1->next;
                }
                if (l2 != nullptr) {
                    val2 = l2->val;
                    l2 = l2->next;
                }
                int val = acc + val1 + val2;
                acc = val >= 10;
                head->next = new ListNode(val % 10);
                head = head->next;
            }
            if (acc) {
                head->next = new ListNode(1);
            }
            return dummy_head->next;
        }
    };
    

    相关文章

      网友评论

          本文标题:2. 两数相加

          本文链接:https://www.haomeiwen.com/subject/qkcrcltx.html