중간에 데이터 삽입


<aside> 🚀

설명


image.png

image.png

image.png

image.png

</aside>

public void add(int index, Object e) {
	Node newNode = new Node(e);   // 1. 새 노드 생성
	if (first == null) {          // 2. 리스트가 비어 있는 경우 처리
		first = newNode;
	} else {                      // 3. 기존 리스트에 새 노드 삽입
		Node prev = getNode(index - 1);  // 3-1. 삽입 위치 바로 앞 노드 찾기
		newNode.next = prev.next;       // 3-2. 새 노드의 next를 기존 다음 노드로 연결
		prev.next = newNode;            // 3-3. 앞 노드의 next를 새 노드로 연결(그림3)
	}
	size++;                        // 4. 리스트 크기 증가
}

추가 설명
newNode.next = prev.next;는 newNode의 다음 링크(next)를 prev.next로 지정한다는 의미
(그림 2번)

image.png