거누의 개발노트

파이썬 알고리즘 - 역순 연결 리스트 본문

코딩테스트

파이썬 알고리즘 - 역순 연결 리스트

Gogozzi 2022. 5. 15. 14:36
반응형

문제

연결 리스트를 뒤집어라

입력

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

 

회고

그나마 이해하기 쉬웠다. 재귀함수로 풀려있는 풀이방법은 이해하기 조금 어려웠다.

반응형
Comments