Tạo hàm insert(data, position) chèn tại vị trí cho trước. Các bước:
- Tạo Node mới
- Kiểm tra list rỗng: thêm vào head, return
- Không rỗng: duyệt đến vị trí với currElem = currElem.next
- Node mới trỏ đến node tiếp theo (giữ phần còn lại)
- Đập link currElem → node mới. Node đã trong list.
Minh họa:

Triển khai
insert(data, position = this.length) { let node = new this.Node(data); if (this.head === null) { this.head = node; this.length++; return this.head; } let iter = 1; let currNode = this.head; while (currNode.next != null && iter < position) { currNode = currNode.next; iter++; } node.next = currNode.next; currNode.next = node; this.length++; return node; }
position mặc định = this.length (chèn cuối). Test:
Ví dụ
let list = new LinkedList(); list.insert(10); list.insert(20); list.insert(30); list.insert(15, 2); list.display();
Kết quả
10 -> 30 -> 15 -> 20 ->
Chèn 15 tại vị trí sau 2 (index 2).