Linked List

아래는 링크드리스트의 append와 delete를 파이썬으로 구현한 코드입니다.

class Node:
	def __init__(self, data):
		self.data = data
		self.next = None

class LinkedList:
	def __init__(self):
		self.head = Node(None)

	def append(self, data):
		if self.head is None:
			self.head = Node(data)
			return
		
		node = self.head
		while node.next is not None:
			node = node.next

		node.next = Node(data)

	def delete(self, data):
		node = self.head
		while node.next is not None:
			if node.next.data == data:
				node.next = node.next.next
				break

			node = node.next

	def retrieve(self):
		node = self.head
		while node.next is not None:
			print(str(node.data), end=" ")
			node = node.next
		print(node.data)

ll = LinkedList()
ll.append(1)
ll.append(2)
ll.append(3)
ll.append(4)
ll.retrieve()
ll.delete(2)
ll.delete(3)
ll.retrieve()

실행해보시면 결과는 아래와 같습니다.

$ python linkedlist.py
None 1 2 3 4
None 1 4