티스토리 뷰
안녕하세요. 죠쵸입니다.
LeetCode 24번 문제 풀이를 포스팅합니다. 해당 문제는 난위도 Medium에 해당합니다. 사용되는 자료구조는 Linked List 입니다.
#LeetCode 24. Swap Nodes in Pairs (Description)
간단히 문제를 설명 드리자면, 주어진 Linked List에서 홀수번째와 짝수번째 Node를 변경하는 것입니다. 쉬운 방법은 연결된 Link를 변경하지 않고, Node 안의 값만 변경하면 되지만, 값만 변경하여 풀이하는 것을 제한하고 있습니다. 아래의 그림을 참조 해 주세요.
#LeetCode 24. Swap Nodes in Pairs (Solution)
비록 값만 바꾸는 것을 제한하고 있지만, 해당풀이를 제출했을 때 문제가 되지 않았습니다.
아래의 코드는 홀수 Node의 값과 짝수 Node의 값을 변경하는 코드입니다.
# Definition for singly-linked list.
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def _print_all(self):
while self:
print(self.val, end=' ')
self = self.next
class Solution:
def swapPairsValue(self, head: ListNode):
firstNode = head
while head and head.next:
currentNode = head
nextNode = currentNode.next
currentNode.val, nextNode.val = nextNode.val, currentNode.val
head = nextNode.next
return firstNode
def swapPairs(self, head: ListNode) -> ListNode:
return self.swapPairsValue(head)
아래의 풀이는 값을 변경하는 것이 아니라 Node의 연결자체를 변경하는 풀이입니다. 재귀함수를 사용하여 깔끔(?)하게 풀이하였습니다. 재귀함수의 경우, 종료조건을 유의하셔서 작성하셔야 정상적인 결과를 얻을 수 있습니다. 아래 풀이를 참조 해 주세요.
# Definition for singly-linked list.
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def _print_all(self):
while self:
print(self.val, end=' ')
self = self.next
class Solution:
def swapPairsNodeRec(self, firstNode: ListNode)->ListNode:
if not firstNode or not firstNode.next:
return firstNode
secondNode = firstNode.next
firstNode.next = self.swapPairsNodeRec(secondNode.next)
secondNode.next = firstNode
return secondNode
def swapPairs(self, head: ListNode) -> ListNode:
return self.swapPairsNodeRec(head)
방문해 주셔서 감사합니다. 여러분의 공감하기(♥), 댓글과 구독은 저에게 힘이 됩니다.
이상으로 죠쵸였습니다.
'Programming > LeetCode' 카테고리의 다른 글
LeetCode 225. Implement Stack using Queues (Python3) (10) | 2021.01.10 |
---|---|
LeetCode 328. Odd Even Linked List (Python3) (1) | 2020.11.25 |
LeetCode 2. Add Two Numbers (Python3) (0) | 2020.11.09 |
LeetCode 206. Reverse Linked List (Python3) (0) | 2020.11.09 |
LeetCode 21. Merge Two Sorted Lists (Python3) (4) | 2020.11.08 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 죠쵸
- 파이썬 기초
- ap news
- Kaggle
- 큘가방
- Study
- 328. Odd Even Linked List
- English
- 리바이스사이즈
- Big Data
- Pandas(판다스)
- 리트코드
- 아디다스삼바화이트
- AdSense
- Leetcode
- 캐글
- ai
- 파이썬 독학
- 파이썬
- 데이터 분석
- Leetcode255
- Machine Learning
- kule
- 판다스
- joecho
- 티파니T1
- pandas
- python
- 재귀함수
- 영어공부
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함