Skip to content

Commit f6f00e7

Browse files
authored
Merge pull request knaxus#157 from knaxus/ll-remoteAt
fix: linked list removeAt()
2 parents 668d24f + 346d9f0 commit f6f00e7

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

src/_DataStructures_/LinkedList/index.js

+22-5
Original file line numberDiff line numberDiff line change
@@ -126,24 +126,27 @@ class LinkedList {
126126
if (!this.head) {
127127
return null;
128128
}
129+
if (index === 0) {
130+
return this.removeFromBeginning();
131+
}
129132

130-
if (index >= this.length()) {
133+
if (index >= this.size - 1) {
131134
return this.removeFromEnd();
132135
}
133136

134137
let address = this.head;
135138
let previous = address;
136139
let count = index;
137140

138-
while (count) {
139-
address = address.next;
141+
while (count >= 1) {
140142
previous = address;
143+
address = address.next;
141144
count -= 1;
142145
}
143-
144146
const node = address;
145-
previous.next = address.next.next;
147+
previous.next = address.next;
146148
this.size -= 1;
149+
147150
node.next = null;
148151
return node;
149152
}
@@ -169,4 +172,18 @@ class LinkedList {
169172
}
170173
}
171174

175+
// const ll = new LinkedList();
176+
// ll.addAtBeginning(20);
177+
// ll.addAtBeginning(15);
178+
// ll.addAtBeginning(10);
179+
// ll.addAtBeginning(5);
180+
181+
// console.log(ll.traverseList());
182+
183+
// console.log(ll.removeAt(0));
184+
// console.log(ll.traverseList());
185+
186+
// console.log(ll.removeAt(1));
187+
// console.log(ll.traverseList());
188+
172189
module.exports = { LinkedList, Node };

0 commit comments

Comments
 (0)