알고리즘/이론

[알고리즘] 링크드리스트 add_node구현

자바칩 프라푸치노 2021. 6. 13. 15:29

2021.06.13 - [알고리즘] - [알고리즘] 링크드리스트 print_all구현

 

[알고리즘] 링크드리스트 print_all구현

class Node: def __init__(self, data): self.data = data self.next = None node = Node(3) first_node = Node(4) node.next = first_node print(node.next.data) class LinkedList: def __init__(self, data): s..

sso-feeling.tistory.com


        # index번에 value를 가진 Node를 연결해라
      def add_node(self, index, value):
        new_node = Node(value)
        if index == 0:
            new_node.next = self.head
            self.head = new_node
            return

        node = self.get_node(index - 1)
        next_node = node.next
        node.next = new_node
        new_node.next = next_node

1. 새로운 node를 만든다.

2. 만약에 index가 0이면 head라는 뜻이다.

그러므로 원래 head를 새로운 노드의 next에 저장하고

head를 new_node로 바꾼다

3. 그렇지 않은 다른 모든 경우에는 index번째에 새로운 node가 들어가야한다

그러면 index-1번째 node를 찾아서 그의 next에 새로운 노드를 넣으면 된다.

4. 그 전에 원래 index번째에 있던 node를 다른 변수에 저장해놓는다 (next_node)

5. 새로운 노드를 넣은 자리 뒤에 위에서 저장해놓은 next_node를 저장한다.

728x90