leetcode#2 Add Two Numbers

정은경·2022년 6월 18일
0

알고리즘

목록 보기
96/125

1. 문제

2. 나의 풀이

# Definition for singly-linked list.
class ListNode(object):
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
        
class Solution(object):
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        
        # 0. 변수 초기화
        node1 = l1
        node2 = l2
        carry = 0
        head = ListNode(0)
        tail = head
        
        # 1. l1과 l2를 순회한다.        
        while node1 or node2:
            # 2. node1과 node2의 합을 구한다
            v1 = node1.val if node1 is not None else 0
            v2 = node2.val if node2 is not None else 0
            current_sum = v1 + v2 + carry
            carry = current_sum /10
            current_sum = current_sum % 10
            
            tail.next = ListNode(current_sum)
            tail = tail.next
            
            if node1:
                node1 = node1.next
            if node2:
                node2 = node2.next

        if carry:
            tail.next = ListNode(1)
            
        return head.next

3. 남의 풀이

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글