[Leetcode] 24. Swap Nodes in Pairs โ
Problem โ
์๋ก ์ธ์ ํ๋ ํ์๋ฒ์งธ์ ์ง์๋ฒ์งธ์ ๋ ธ๋์ ์์น๋ฅผ ์๋ก ์๋ฆฌ ์ด๋ ์ํค๋ ๋ฌธ์
Solution โ
- ๋น ๋ ธ๋๋ฅผ ๋ง๋ค๊ณ head๋ฅผ ๊ฐ๋ฅดํค๋๋กํ๋ค.
- ์ฒซ๋ฒ์งธ์ ๋๋ฒ์งธ ๋ ธ๋๋ฅผ swapํ๊ธฐ ์ํด์๋ ์ฒซ๋ฒ์งธ์ ๋๋ฒ์งธ, ์ธ๋ฒ์งธ ๋ ธ๋๋ฅผ ์ ์ฅํด๋๊ณ ์ฒซ๋ฒ์งธ๊ฐ ์ธ๋ฒ์งธ๋ฅผ ๊ฐ๋ฅดํค๊ณ ๋๋ฒ์งธ๊ฐ ์ฒซ๋ฒ์งธ๋ฅผ ๊ฐ๋ฅดํค๊ฒ ๋ง๋ ๋ค. ๋ง์ง๋ง์ผ๋ก ์ด์ ๋ ธ๋๊ฐ ์ฒซ๋ฒ์งธ๊ฐ ์๋ ๋๋ฒ์งธ๋ฅผ ๊ฐ๋ฅดํค๋๋กํ๋ค.
JS Code โ
javascript
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {ListNode}
*/
var swapPairs = function(head) {
const preHead = new ListNode(0,head)
let rear = preHead
while(rear.next?.next) {
const third = rear.next.next.next
const second = rear.next.next
const first = rear.next
first.next = third
second.next = first
rear.next = second
rear = rear.next.next
}
return preHead.next
};