Вопрос: Для связанного списка поменяйте местами каждые два соседних узла и верните его заголовок.
Вы не можете изменять значения в узлах списка, могут быть изменены только сами узлы.
Учитывая 1-> 2-> 3-> 4, вы должны вернуть список как 2-> 1-> 4-> 3.
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
def swap(x , y):
x , y = y , x
return x , y
class Solution:
def swapPairs(self, head: ListNode) -> ListNode:
if(head is None or head.next is None):
return head
pair1 = head
pair2 = head.next
while(pair1 is not None and pair2 is not None):
swap(pair1.val,pair2.val)
if(pair1.next.next is not None and pair2.next.next is not None):
pair1 = pair1.next.next
pair2 = pair2.next.next
return head
Ошибка: превышено ограничение по времени