This commit is contained in:
Harish Nanthan 2024-04-25 08:35:23 +08:00 committed by GitHub
commit 3aa5cb5765
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -12,6 +12,8 @@ export default class LinkedList {
/** @var LinkedListNode */ /** @var LinkedListNode */
this.tail = null; this.tail = null;
this.length = 0;
this.compare = new Comparator(comparatorFunction); this.compare = new Comparator(comparatorFunction);
} }
@ -29,6 +31,9 @@ export default class LinkedList {
this.tail = newNode; this.tail = newNode;
} }
// once node added, modify the length the list
this.length++;
return this; return this;
} }
@ -51,6 +56,9 @@ export default class LinkedList {
this.tail.next = newNode; this.tail.next = newNode;
this.tail = newNode; this.tail = newNode;
// once node added, modify the length the list
this.length++;
return this; return this;
} }
@ -63,6 +71,8 @@ export default class LinkedList {
const index = rawIndex < 0 ? 0 : rawIndex; const index = rawIndex < 0 ? 0 : rawIndex;
if (index === 0) { if (index === 0) {
this.prepend(value); this.prepend(value);
} else if (index === this.length) {
this.append(value);
} else { } else {
let count = 1; let count = 1;
let currentNode = this.head; let currentNode = this.head;
@ -85,6 +95,10 @@ export default class LinkedList {
} }
} }
} }
// once node added, modify the length the list
this.length++;
return this; return this;
} }
@ -125,6 +139,9 @@ export default class LinkedList {
this.tail = currentNode; this.tail = currentNode;
} }
// once node added, modify the length the list
this.length--;
return deletedNode; return deletedNode;
} }
@ -186,6 +203,9 @@ export default class LinkedList {
this.tail = currentNode; this.tail = currentNode;
// once node added, modify the length the list
this.length--;
return deletedTail; return deletedTail;
} }
@ -206,6 +226,9 @@ export default class LinkedList {
this.tail = null; this.tail = null;
} }
// once node added, modify the length the list
this.length--;
return deletedHead; return deletedHead;
} }