Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача односвязный список Python.

Wave Fighter Ученик (92), на голосовании 3 недели назад
 class Solution(object): 
def swapPairs(self, head):
try:
if head.next == None:
return head
except:
return head
p = head
while p != None and p.next != None:
first = p
second = p.next
first.next = second.next
second.next = first
p = first.next # Update p to point to the next pair
return head
Почему код работает неправильно?
Например при исходном списке 1->2->3->4 возвращает 1->3

Голосование за лучший ответ
Программист h Профи (718) 1 месяц назад
1) Не обновляется head
2) Не сохраняется ссылка на новый head
3) Логика обновления p
я тебе тут код исправил
class Solution(object):
def swapPairs(self, head):
if head is None or head.next is None:
return head

new_head = head.next

p = head
while p is not None and p.next is not None:
first = p
second = p.next

first.next = second.next
second.next = first

if first.next is not None and first.next.next is not None:
p.next = first.next.next
else:
p.next = first.next

p = first.next

return new_head
я в пийтоне знаток
Рустам Абдрашитов Мыслитель (9542) 1 месяц назад
Напиши в тг @Skeb7 скину чистый топовый код на 221 строку
Рустам АбдрашитовМыслитель (9542) 1 месяц назад
Либо
https://pastebin.com/7KHDdK9b
Рустам Абдрашитов Мыслитель (9542) Рустам Абдрашитов, нажми сюда с сайта скопируешь код
Рустам АбдрашитовМыслитель (9542) 1 месяц назад
Оф туда не надо
Рустам Абдрашитов Мыслитель (9542) Рустам Абдрашитов, ща скину
Похожие вопросы