나는 링크드리스트를 파이썬으로 배우려고한다. 나는 Linked List 클래스를 받았고 추가 메소드를 만들 것을 요청 받았다.Python - Linked List - Append
다음은 제공된 코드입니다.
class Node:
def __init__(self, item, next):
self.item = item
self.next = next
class LinkedList:
def __init__(self):
self.head = None
def add(self, item):
self.head = Node(item, self.head)
def remove(self):
if self.is_empty():
return None
else:
item = self.head.item
self.head = self.head.next
return item
def is_empty(self):
return self.head == None
def __str__(self):
tmp_str = ""
ptr = self.head
while ptr != None:
tmp_str += ptr.item + " "
ptr = ptr.next
return tmp_str
여기 내 추가 방법이 있지만 문제가 있습니다. 연결된 목록이 비어 있으면 하나를 만들어야한다는 것을 알고 있습니다. 내부에 요소가 있으면 문제가 시작됩니다.
def append(self, item):
ptr = self.head
if ptr:
while ptr != None:
ptr = ptr.next
ptr = Node(item, ptr)
else:
self.head = Node(item, self.head)
누구나 내가 뭘 잘못 말했는지 알 수 있습니까? 어떤 도움이라도 대단히 감사합니다.
'ptr'이 아닌 경우 (즉, 목록이 비어 있지 않은 경우) 목록에서 마지막 노드를 찾으면 'last.next = Node (item, None)' –
용어집 :'append'는 클래스가 아니며,'LinkedList' 클래스의 함수, 메소드 *입니다. –
@ juanpa.arrivillaga 고마워. 고치다. –