1. Linked list의 노드 class 기본 구성
#리스트 노드
class ListNode:
def __init__(self, val, next):
self.val = val
self.next = next
2. linked list 기본 구조
class LlinkedList:
def __init__ (self):
#리스트 가장 첫번째 요소
self.head = None
#삽입
def append(self, val):
if not self.head:
self.head = ListNode(val, None)
return
node = self.head
#가장 마지막 노드로 가는 코드 (next 가 있는 동안 쭉 )
while node.next:
node = node.next
node.next = ListNode(val, None)
__init__ 을 통해 head를 지정한다. append 에서는 첫 번째 노드(head)를 가리킨 다음, while 문을 이용해 next 를 가리키고 있는 노드라면 반복문을 계속 실행하게 한다. 마지막 노드에 도달했을 때 새로운 노드의 value 를 반환한다.
이후 링크드리스트 클래스를 활용해 아래 lst를 링크드리스트화 한다면 아래와 같다.
lst = [1, 2, 3]
l1 = LinkedList()
for e in lst:
l1.append(e)
'알고리즘' 카테고리의 다른 글
백준 10866 ) 덱 Python 파이썬 (0) | 2023.05.26 |
---|---|
해시테이블이란? Hashing 과정 (1) | 2023.05.26 |
백준 ) 1110 - 더하기 사이클 Python (0) | 2023.05.24 |
백준) 18258 Python (큐 Queue) (0) | 2023.05.24 |
자료구조 - Stack, Queue | 백준 10828 , 10773 Python (0) | 2023.05.24 |