링크드 리스트 원소 찾기
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self, value):
self.head = Node(value)
def append(self, value):
cur = self.head
while cur.next is not None:
cur = cur.next
cur.next = Node(value)
def print_all(self):
cur = self.head
while cur is not None:
print(cur.data)
cur = cur.next
def get_node(self, index):
return "index 번째 노드를 반환해보세요!"
linked_list = LinkedList(5)
linked_list.append(12)
linked_list.get_node(0) # -> 5를 들고 있는 노드를 반환해야 합니다!
코드 분석
def get_node(self, index):
return "index 번째 노드 반환"
next.node로 가는걸 index번 해야한다는 의미
# index만큼 next 이동을 해야하는데, node에는 node.next를 담을거니
원하는 인덱스 위치의 값을 얻으려면 index-1 이라고 생각을 하고 있는 상태로
count 라는 인스턴스를 만들고 count를 1씩 증가시키면서,
index보다 count가 작아질 때 node를 반환하도록 식을 세우기
def get_node(self, index):
node = self.head
count = 0
while count < index:
node=node.next
count += 1
return node
직접 예시 세워보며 코드 분석하기
특정 index 삭제하기
def delete_node(self, index):
if index ==0:
self.head = self.head.next
return
node = self.get_node(index-1)
node.next = node.next.next
'✍ 따뜻한 개발 공부' 카테고리의 다른 글
[깃허브] 소스트리 이용하여 깃허브에 푸쉬/풀 해보기 (0) | 2022.11.14 |
---|---|
[스프링] 스프링 빈이란 ? / web.xml이란? (주말공부) (0) | 2022.11.13 |
[알고리즘] 링크드 리스트 구현하기 / 노드 이해! (주말공부) (0) | 2022.11.12 |
[mongoDB] 몽고DB 연결 / server 연결 (Flask) (0) | 2022.11.10 |
[제이쿼리] 부분 새로고침 (0) | 2022.11.06 |
댓글