Как работают классы в python и как решать задачи на leetcode с их использованием?
задача - Given the head of a singly linked list, reverse the list, and return the reversed list https://leetcode.com/problems/reverse-linked-list/description/
Ответ на задачу:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
prev = None
while head != None:
temp = head
head = head.next
temp.next = prev
prev = temp
return prev
НЕСКОЛЬКО ВОПРОСОВ
Зачем переназначать переменную head несколько раз?
temp = head prev = tempРанее смотрел ответы на подобные задачи с классами, и там везде так делают, зачем? Отслеживать перемещение??Запускаю в своем редакторе, но получаю ошибку
File "main.py", line 12, in reverseList head = head.next AttributeError: 'list' object has no attribute 'next'
Код, в моем редакторе:
from typing import Optional
# Definition for singly-linked list.
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution:
def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
prev = None
while head != None:
temp = head
head = head.next
temp.next = prev
prev = temp
return prev
t = Solution()
print(t.reverseList([1,2]))
Очень хотел бы разобраться в этом деле, надеюсь вы мне поможете)