상세 컨텐츠

본문 제목

2. Add Two Numbers

Developer/LEETCODE

by cepiloth 2021. 9. 3. 08:23

본문

728x90
반응형

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

 

Add Two Numbers - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

난이도 : midium

 

문제

두개의 리스트의 합으로 리스트를 구하여라.

 

코드

/**
 * 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) {
        // 1. 더미 리스트 노드 생성
        // 2. 리스트가 있을때 리스트의 값을 더한다.
        // 3. 리스트의 합이 10이 넘어갈 수 있음으로 extra 즉 캐리를 추가한다.
        // 4. tmp->next = new ListNode 생성하고 합 % 10 으로 value 를 추가한다.
        // 5. tmp 리스트를 다음 리스트로 이동한다.
        // 6. l1, l2 가 next 노드가 있으면 이동하고 아니면 현재 주소를 리턴한다.
        ListNode dummy(0); 
        ListNode* tmp = &dummy;
        
        int extra = 0;
        while(l1 || l2 || extra) {
            int sum = (l1 ? l1->val : 0) + (l2 ? l2->val : 0) + extra;
            extra = sum / 10;
            tmp->next = new ListNode(sum % 10);
            tmp = tmp->next;
            l1 = l1 ? l1->next : l1;
            l2 = l2 ? l2->next : l2;
        }
        
        return dummy.next;
    }
};
728x90
반응형

'Developer > LEETCODE' 카테고리의 다른 글

16. 3Sum Closest  (0) 2021.09.04
137. Single Number II  (0) 2021.09.04
461. Hamming Distance  (0) 2021.09.02
75. Sort Colors  (0) 2021.09.02
121. Best Time to Buy and Sell Stock  (0) 2021.09.01

관련글 더보기

댓글 영역