본문 바로가기

코딩/파이썬

[python]연결리스트 뒤집기

1. 파이썬 연결 리스트 기본 구조

 

class ListNode(object):
     def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

 

2. 파이썬 연결리스트 뒤집기

 

  def reverse(self,head):
         
         if head:
             prev, node = None, head
             
             while node:
                 next , node.next = node.next, prev
                 prev,node = node,next
        
         return prev

 

1. 연결리스트가 있는지 확인

2. prev -> None으로 초기화

3. node ->head로 초기화 : 연결리스트

3. 반복문을 사용하여 node 를 이전 노드와 연결, node를 prev에 업데이트

  •  next 변수에 node.next를 저장하여 현재 노드의 다음 노드를 임시 보관(끊어지지 않도록)
  • node.next 를prev로 설정하여 현재 노드를 이전 노드와 연결
  • prev 변수를 현재 노드로 업데이트
  • node 변수를 다음 노드를 가리키는 next로 업데이트