본문 바로가기

problem solving

[LeetCode]#2 Add Two Numbers

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
#include <iostream>
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode newNode(0);
        ListNode *returnNode = &newNode;
        int sum = 0;
        int curTen = 0;
        while(l1 || l2 || curTen) {
            int val1 = l1 != NULL ? l1->val : 0;
            int val2 = l2 != NULL ? l2->val : 0;
            
            sum = (val1 + val2) + curTen;
            returnNode->next = new ListNode(sum % 10);
            curTen = sum / 10;
            returnNode = returnNode->next;
            l1 = l1 != NULL ? l1->next : NULL;
            l2 = l2 != NULL ? l2->next : NULL;
        }
 
        return newNode.next;
    }
};
cs

'problem solving' 카테고리의 다른 글

[SWEA]2814. 최장 경로  (0) 2020.03.15
[BOJ]1874번: 스택 수열  (0) 2020.03.14
[프로그래머스]디스크 컨트롤러  (0) 2020.03.14
[프로그래머스]섬 연결하기  (0) 2020.03.13
[프로그래머스]이중우선순위큐  (0) 2020.03.13