단일 연결 리스트(Singly Linked List) : 각 노드가 다음 노드만을 가리키는 가장 간단한 형태
이중 연결 리스트(Doubly Linked List) : 각 노드가 이전 노드와 다음 노드 양쪽을 가리키는 형태
원형 연결 리스트(Circular Linked List) : 리스트의 마지막 노드가 다시 첫 번째 노드를 가리키는 형태
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
if not self.head:
self.head = Node(data)
else:
current = self.head
while current.next:
current = current.next
current.next = Node(data)
def display(self):
elements = []
current = self.head
while current:
elements.append(current.data)
current = current.next
print(elements)
def delete(self, data):
current = self.head
if current and current.data == data:
self.head = current.next
return
prev = None
while current and current.data != data:
prev = current
current = current.next
if current:
prev.next = current.next
linked_list = LinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.display() # [1, 2, 3]
linked_list.delete(2)
linked_list.display() # [1, 3]