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 a3d841e

Browse files
committed
update: added tail of LL
1 parent 9c4da08 commit a3d841e

File tree

1 file changed

+20
-16
lines changed
  • src/_DataStructures_/LinkedList

1 file changed

+20
-16
lines changed

β€Žsrc/_DataStructures_/LinkedList/index.jsβ€Ž

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,42 @@ class Node {
22
constructor(data, next) {
33
this.data = data;
44
this.next = next;
5+
this.length = 0;
56
}
67
}
78

89
class LinkedList {
910
constructor() {
1011
this.head = null;
12+
this.tail = null;
1113
}
1214

1315
addAtBeginning(element) {
1416
this.head = new Node(element, this.head);
17+
if (!this.tail) {
18+
this.tail = this.head;
19+
}
20+
return this.head;
1521
}
1622

1723
addAtEnd(element) {
18-
const node = new Node(element, null);
19-
2024
if (!this.head) {
21-
this.head = node;
22-
} else {
23-
let address = this.head;
24-
while (address.next) {
25-
address = address.next;
26-
}
27-
address.next = node;
25+
return this.addAtBeginning(element);
2826
}
27+
const node = new Node(element, null);
28+
this.tail.next = node;
29+
this.tail = node;
30+
return node;
2931
}
3032

3133
removeFromBeginning() {
3234
if (!this.head) {
35+
this.tail = null;
3336
return null;
3437
}
38+
if (this.head.next === null) {
39+
this.tail = this.head;
40+
}
3541
const node = this.head;
3642
this.head = this.head.next;
3743
return node;
@@ -47,8 +53,10 @@ class LinkedList {
4753
address = address.next;
4854
}
4955

50-
const node = address.next;
51-
address.next = null;
56+
this.tail = address;
57+
58+
const node = this.tail.next;
59+
this.tail.next = null;
5260
return node;
5361
}
5462

@@ -63,11 +71,7 @@ class LinkedList {
6371
if (!this.head) {
6472
return null;
6573
}
66-
let address = this.head;
67-
while (address.next) {
68-
address = address.next;
69-
}
70-
return address;
74+
return this.tail;
7175
}
7276

7377
getAt(index) {

0 commit comments

Comments
(0)

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /