Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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
  • src/_DataStructures_/LinkedList

1 file changed

+22
-5
lines changed

‎src/_DataStructures_/LinkedList/index.js‎

Lines changed: 22 additions & 5 deletions
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)

AltStyle によって変換されたページ (->オリジナル) /