Leetcode/Top 100 Liked

[Linked List][Medium] 24. Swap Nodes in Pairs.

자전거통학 2024. 4. 11. 02:37

 

https://leetcode.com/problems/swap-nodes-in-pairs/description

 

Q. 주어진 리스트를 각 쌍을 뒤집는 꼴로 변형하라. 

 

Solution. 

 직관대로 뒤집어 재 연결하였다. 

 예외처리가 좀 필요하다. 

 

 깔끔한 코드는 아닌 듯.

 

더보기

 

public ListNode SwapPairs(ListNode head) 
{
    ListNode front = null;
    ListNode tail = head;
    ListNode prev = null;
    head = null;
    while(tail is not null)
    {
        front = tail.next;
        ListNode next = front!=null ? front.next : null;
        if(front != null) front.next = tail;
        if(prev != null)
        {
            if(front != null)   prev.next = front;
            else prev.next = tail;
        }
        tail.next = next;
        prev = tail;
        if(head == null)
        {
            if(front != null)    head = front;
            else head = tail;
        }
        tail = next;
    }
    return head;
}

 

결과도 안좋다. 

 

좋은 결과를 낸 코드를 보니, 두개씩 뒤집고 그 함수를 콜 하여 재사용 한듯 보인다. 

그 쪽이 훨씬 직관적일듯 싶긴 하다.