Scribbling

[C++ Reminder] LeetCode 2. Add Two Numbers 본문

Computer Science/C++

[C++ Reminder] LeetCode 2. Add Two Numbers

focalpoint 2023. 1. 23. 10:29
/**
 * 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* curPtr = new ListNode(0);
        ListNode* ret = curPtr;
        int sum=0, carry = 0;
        while (l1 || l2 || carry) {
            int temp = (l1? l1->val: 0) + (l2? l2->val: 0) + carry;
            curPtr->next = new ListNode(temp%10);
            curPtr = curPtr->next;
            l1 = l1? l1->next: l1;
            l2 = l2? l2->next: l2;
            carry = int(temp/10);            
        }
        return ret->next;
    }
};

'Computer Science > C++' 카테고리의 다른 글

[C++] 49. Group Anagrams  (0) 2023.08.18
[C++] LeetCode 242. Valid Anagram  (0) 2023.08.18
[C++] LeetCode 217. Contains Duplicate  (0) 2023.08.18
[C++ Reminder] LeetCode: 15. 3Sum  (0) 2023.01.26
[C++ Reminder] LeetCode 1. Two Sum  (0) 2023.01.23