# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:
node = head
while node and node.next:
node.val, node.next.val = node.next.val, node.val
node = node.next.next
return head
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def swapPairs(self, head: Optional[ListNode]) -> Optional[ListNode]:
root = prev = ListNode(None)
prev.next = head
while head and head.next:
next = head.next
head.next = next.next
next.next = head
prev.next = next
# head의 next는 다다음으로 바뀌었으니 하나만 이동하면됨.
head = head.next
# 처음 prev는 none이니 다다음으로 가야함 짝수단위로 가야함.
prev = prev.next.next
return root.next
[문제]
https://leetcode.com/problems/swap-nodes-in-pairs/submissions/