[LeetCode] 24. Swap Nodes in Pairs

yunanยท2021๋…„ 1์›” 27์ผ
0
post-thumbnail

๐Ÿ”ฆ ๋ฌธ์ œ ๋งํฌ

๐Ÿ”Š ํŒŒ์ด์ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ธํ„ฐ๋ทฐ ์ฑ…์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฌธ์ œ

์—ฐ๊ฒฐ๋œ ๋ชฉ๋ก์ด ์ฃผ์–ด์ง€๋ฉด ์ธ์ ‘ํ•œ ๋‘ ๋…ธ๋“œ๋ฅผ ๋ชจ๋‘ ๊ต์ฒดํ•˜๊ณ  ํ—ค๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

โœ๏ธ ํ’€์ด


์ฐจ๋ถ„ํžˆ ์›๋ž˜ ์ธ์ ‘ํ•˜๋Š” ๋…ธ๋“œ๋ผ๋ฆฌ์˜ ์—ฐ๊ฒฐ ๋Œ€์‹  ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์„ ํ•ด์ค˜์•ผํ•œ๋‹ค.
1. root์™€ prev์˜ ์‹œ์ž‘์ง€์ ์„ ์ƒ์„ฑํ•œ๋‹ค. [ListNode(None)]
2. ์ธ์ ‘ํ•œ ๋‘ ๋…ธ๋“œ๋ฅผ ์Šค์™‘ํ•˜๋ฏ€๋กœ ์ตœ์†Œํ•œ ํ˜„์žฌ๋…ธ๋“œ์™€ ๋‹ค์Œ๋…ธ๋“œ๊ฐ€ ์กด์žฌํ•ด์•ผ๋งŒ ํ•œ๋‹ค.
3. ๋‘๋ฒˆ์งธ ๋…ธ๋“œ.next(์„ธ๋ฒˆ์งธ๋…ธ๋“œ)๋ฅผ ์ฒซ๋ฒˆ์งธ๋…ธ๋“œ.next๊ฐ€ ๊ฐ€๋ฅดํ‚ค๊ฒŒ ํ•œ๋‹ค.
4. ๊ทธ๋ฆฌ๊ณ  ๋‘๋ฒˆ์งธ ๋…ธ๋“œ.next๋Š” ์ฒซ๋ฒˆ์งธ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฅดํ‚ค๊ฒŒ ๋˜์–ด ๋‘ ๋…ธ๋“œ์˜ ์œ„์น˜๊ฐ€ ๋ฐ”๋€๋‹ค.
5. ์ด์ œ ๋‚จ์€ ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ ์•ž์— ์žˆ๋Š” ๋…ธ๋“œ๊ฐ€ ์›๋ž˜ ๋‘๋ฒˆ์งธ๋…ธ๋“œ ์˜€๋˜ ๊ฒƒ์„ ๊ฐ€๋ฅดํ‚ค๊ฒŒ ๋งŒ๋“ ๋‹ค.

๋ชจ๋‘ ์™„๋ฃŒํ•˜๋ฉด ๋‘ ๋…ธ๋“œ๊ฐ€ ์Šค์™‘์ด ๋œ๋‹ค.

๐Ÿ›  ์ฝ”๋“œ


class Solution:
    def swapPairs(self, head: ListNode) -> ListNode:
        root = prev = ListNode(None)
        prev.next = head
        
        while head and head.next:
            b = head.next
            head.next = b.next
            b.next = head
            
            prev.next = b
            
            head = head.next
            prev = prev.next.next
        return root.next

๐Ÿ“ ์ •๋ฆฌ


๐ŸŽˆ ์ฐธ๊ณ 


Book ๋งํฌ

profile
Go Go

0๊ฐœ์˜ ๋Œ“๊ธ€