Programming/1 Day 1 Commit
[LeetCode] Add Two Numbers (Python3)
by Mandy's
2023. 1. 31.
- 생각보다 어려운 문제에 당황..
- 결국 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