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;
}
결과도 안좋다.
좋은 결과를 낸 코드를 보니, 두개씩 뒤집고 그 함수를 콜 하여 재사용 한듯 보인다.
그 쪽이 훨씬 직관적일듯 싶긴 하다.
'Leetcode > Top 100 Liked' 카테고리의 다른 글
[Linked List][Easy] 141. Linked List Cycle (1) | 2024.04.11 |
---|---|
[Linked List][Hard] 25. Reverse Nodes in K-Group (0) | 2024.04.11 |
[Linked List][Hard] 23. Merge k Sorted List (0) | 2024.04.09 |
[Linked List][Easy] 21. Merge Two Sorted Lists. (0) | 2024.04.09 |
[Linked List][Medium] 19. Remove Nth Node From End of List (0) | 2024.04.09 |