새소식

Programming/1 Day 1 Commit

[LeetCode] Add Two Numbers (Python3)

  • -
  • 생각보다 어려운 문제에 당황..
  • 결국 solution을 그대로 보고 풀었는데 그래도 이해가 안가서 2차 당황..
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:
        dummyHead = ListNode(0)
        curr = dummyHead
        carry = 0
        while l1 != None or l2 != None or carry != 0:
            l1Val = l1.val if l1 else 0
            l2Val = l2.val if l2 else 0
            columnSum = l1Val + l2Val + carry # 7 10 8
            carry = columnSum // 10 # 0 1 0
            # print(columnSum, carry)
            newNode = ListNode(columnSum % 10) #ListNode{val: 7, next: None} ListNode{val: 0, next: None} ListNode{val: 8, next: None}
            # print(newNode) 
            curr.next = newNode # None None None
            curr = newNode # ListNode{val: 7, next: None} ListNode{val: 0, next: None} ListNode{val: 8, next: None}
            # print(curr.next, curr)
            l1 = l1.next if l1 else None
            # print(l1)
            l2 = l2.next if l2 else None
            # print(l2)
        return dummyHead.next
 
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.