재귀(3)
-
[리트코드] 24. Swap Nodes in Pairs
# 문제 설명 주어진 연결리스트에 대해서, 2개의 인접한 노드들을 swap한 연결리스트를 반환해라. # 입출력 예시 입력 출력 1 -> 2 -> 3 -> 4 2 -> 1 -> 4 -> 3 1 1 # 코드 풀이 1. 값만 바꾸기 class Solution: def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]: now = head while now and now.next: # 값만 바꾸기 now.val, now.next.val = now.next.val, now.val # swap now = now.next.next return head # 코드 풀이 2. 반복으로 풀이 class Solution: def swapPairs(self, he..
2022.01.18 -
[리트코드] 2. Add Two Numbers
# 문제 설명 역순으로 단일 10진수 (0~9)값을 저장하는 연결리스트 2개가 주어진다. 2개의 수를 합친 값을 연결리스트로 반환해라. 단, 주어진 연결리스트는 비어있지 않고, 음수 값을 저장하지 않는다. # 입출력 예시 입력 출력 2 -> 4 -> 3 5 -> 6 -> 4 7 -> 0 -> 8 0 0 0 9 -> 9 -> 9 -> 9 -> 9 -> 9 -> 9 9 -> 9 -> 9 -> 9 8 -> 9 -> 9 -> 9 -> 0 -> 0 -> 0 -> 1 첫번째 입력을 설명하자면, 각각의 연결리스트를 역순으로 한 342 + 465 을 계산하면, 807 이 된다. # 코드 풀이 1. 재귀를 사용한 풀이 class Solution: def addTwoNumbers(self, l1: Optional[List..
2022.01.16 -
[리트코드] 21. Merge Two Sorted Lists
# 문제 설명 2개의 정렬된 연결리스트인 list1, list2가 주어진다. 2개의 연결리스트를 하나의 정렬된 연결리스트로 합쳐라. # 입출력 예시 입력 출력 1 -> 2 -> 4 1 -> 3 -> 4 1 -> 1 -> 2 -> 3 -> 4 -> 4 # 코드 풀이 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]: # ..
2022.01.14