У меня нет информатики. Я пытаюсь изучить кодирование самостоятельно, и я делаю это, частично, путем решения проблем на LeetCode.
В любом случае, есть проблемы с использованием связанных списков. И я уже нашел информацию о том, что связанный список должен быть смоделирован в Phython. Моя проблема в том, что я действительно не могу получить то, что стоит за связанным списком. Например, какие проблемы могут быть нацелены на эти проблемы?
И вообще, как функция связанного списка. Любая ссылка для такой информации была бы очень полезной.
Недавняя проблема, которую я смотрел на LeetCode, просит поменять местами каждые два соседних узла и вернуть свою голову. И LeetCode предлагает следующее решение, что я не могу понять, как это работает.Как работает связанный список?
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def swapPairs(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
pre = self
pre.next = head
while pre.next and pre.next.next:
a = pre.next
b = a.next
pre.next =b
b.next =a
a.next =b.next
pre = a
return self.next
Как я уже сказал, я не понимаю этого решения. Я попытался использовать список примеров 1-> 2-> 3-> 4, который должен вернуть список 2-> 1-> 4-> 3 Все, что мне удалось, это сделать только один проход через цикл, а затем компьютер должен выйти из но тогда что происходит? Как переключаются последние два номера? Как этот код работает вообще, если в списке есть только 2 элемента, для меня это кажется невозможным.
Если бы вы могли просто направить меня в онлайн-литературу, которая объяснит что-то подобное, я был бы очень благодарен.
Спасибо.
Большое спасибо за ссылку. Это очень помогло. По крайней мере, теперь я знаю, что стоит за этим. – Lexa