거누의 개발노트
파이썬 알고리즘 - 역순 연결 리스트 본문
반응형
문제
연결 리스트를 뒤집어라
입력
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/
회고
그나마 이해하기 쉬웠다. 재귀함수로 풀려있는 풀이방법은 이해하기 조금 어려웠다.
반응형
'코딩테스트' 카테고리의 다른 글
파이썬 알고리즘 인터뷰 - 중복 문자 제거 (0) | 2022.05.16 |
---|---|
파이썬 알고리즘 - 유효한 괄호 (0) | 2022.05.16 |
파이썬 알고리즘 - 두 정렬 리스트의 병합 (*) (0) | 2022.05.15 |
파이썬 알고리즘 인터뷰 - 배열 파티션 I (0) | 2022.05.15 |
파이썬 알고리즘 인터뷰 - 세 수의 합 (0) | 2022.05.15 |
Comments