자료구조와 알고리즘/🥑알고리즘

[알고리즘][연결 리스트] - 5. 페어의 노드 스왑

얄루몬 2022. 2. 26. 15:42

 

📖이 포스팅은 '파이썬 알고리즘 인터뷰 - 박상길님'을 보고 작성되었습니다.


😎문제 : https://leetcode.com/problems/letter-combinations-of-a-phone-number/

연결 리스트를 입력받아 페어(Pair) 단위로 스왑하라


[값만 교환]

class Solution:
    def swapPairs(self, head: ListNode) -> ListNode:
        current = head
        
        while current and current.next:
            current.val , current.next.val = current.next.val, current.val
            current = current.next.next
            
        return head
  • 노드 구조는 그대로 유지하며 값만 변경해주면 되는 문제이기 때문에 쉽게 바꿀 수 있다.
    • 실제로는 값만 바꾸는 것은 매우 어렵다 그러나 이 경우엔 단 하나의 값으로 구성된 단순 연결 리스트이기 때문에 값을 바꾸는 정도는 그다지 어렵지 않다.
  • 2칸씩 진행하기 때문에 current.next.next를 진행해준다.
  • 파이썬은 객체이기 때문에 current를 head로 같은 참조를 복사해서 값을 변경해주는 방식으로 진행??