거누의 개발노트
파이썬 알고리즘 - 역순 연결 리스트 본문
반응형
문제
연결 리스트를 뒤집어라
입력
1->2->3->4->5->NULL
출력
5->4->3->2->1->NULL
작성한 코드
def reverseList(head):
node, prev = head, None
while node: # 1 2 3
next = node.next # 2 3
node.next = prev # Null 1
prev = node # 1 2
node = next # 2 3
return prev
책에 있는 코드
def reverseList(self, head) -> ListNode:
# SOL 1) Recursive Way
def reversef(node, prev=None):
if not node:
# node가 비어있는 경우
return prev
next, node.next = node.next, prev
return reversef(next, node)
return reversef(head)
문제 링크
https://leetcode.com/problems/reverse-linked-list/
Reverse Linked List - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
회고
그나마 이해하기 쉬웠다. 재귀함수로 풀려있는 풀이방법은 이해하기 조금 어려웠다.
반응형
'코딩테스트' 카테고리의 다른 글
파이썬 알고리즘 인터뷰 - 중복 문자 제거 (0) | 2022.05.16 |
---|---|
파이썬 알고리즘 - 유효한 괄호 (0) | 2022.05.16 |
파이썬 알고리즘 - 두 정렬 리스트의 병합 (*) (0) | 2022.05.15 |
파이썬 알고리즘 인터뷰 - 배열 파티션 I (0) | 2022.05.15 |
파이썬 알고리즘 인터뷰 - 세 수의 합 (0) | 2022.05.15 |
Comments