[LeetCode] 24. Swap Nodes in Pairs

Chobby·2024년 8월 26일
1

LeetCode

목록 보기
61/194

1번째 노드와 2번째 노드의 순서를 교환하면 되는 문제이다.

복잡한 구현이 필요없이 재귀적으로 호출되게 풀이하였음

즉 뒤에서부터 두 요소 씩 순서를 변경하여 초기 head를 마지막 교환하여 완료하는 방식

😎풀이

function swapPairs(head: ListNode | null): ListNode | null {
    // 헤드가 null이거나 다음 노드가 없으면 그대로 반환
    if (head === null || head.next === null) {
        return head;
    }

    // 첫 번째와 두 번째 노드를 가리키는 포인터
    let firstNode = head;
    let secondNode = head.next;

    // 첫 번째 노드를 두 번째 노드의 다음 노드와 연결
    firstNode.next = swapPairs(secondNode.next);
    // 두 번째 노드를 첫 번째 노드와 연결
    secondNode.next = firstNode;

    // 교환된 쌍의 새로운 헤드(원래의 두 번째 노드)를 반환
    return secondNode;
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글