From a63bc67cf4cea08c1dfba83dd010f75a464311ab Mon Sep 17 00:00:00 2001 From: m-maksyutin Date: Sat, 2 Jun 2018 09:23:55 +0300 Subject: [PATCH] Fix LinkedList (#42) --- src/data-structures/linked-list/LinkedList.js | 2 +- src/data-structures/linked-list/__test__/LinkedList.test.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/data-structures/linked-list/LinkedList.js b/src/data-structures/linked-list/LinkedList.js index b428ad73..4e82ab0d 100644 --- a/src/data-structures/linked-list/LinkedList.js +++ b/src/data-structures/linked-list/LinkedList.js @@ -60,7 +60,7 @@ export default class LinkedList { let deletedNode = null; // If the head must be deleted then make 2nd node to be a head. - if (this.compare.equal(this.head.value, value)) { + while (this.head && this.compare.equal(this.head.value, value)) { deletedNode = this.head; this.head = this.head.next; } diff --git a/src/data-structures/linked-list/__test__/LinkedList.test.js b/src/data-structures/linked-list/__test__/LinkedList.test.js index 1b938e1b..61f018fe 100644 --- a/src/data-structures/linked-list/__test__/LinkedList.test.js +++ b/src/data-structures/linked-list/__test__/LinkedList.test.js @@ -32,6 +32,7 @@ describe('LinkedList', () => { expect(linkedList.delete(5)).toBeNull(); + linkedList.append(1); linkedList.append(1); linkedList.append(2); linkedList.append(3); @@ -45,10 +46,10 @@ describe('LinkedList', () => { const deletedNode = linkedList.delete(3); expect(deletedNode.value).toBe(3); - expect(linkedList.toString()).toBe('1,2,4,5'); + expect(linkedList.toString()).toBe('1,1,2,4,5'); linkedList.delete(3); - expect(linkedList.toString()).toBe('1,2,4,5'); + expect(linkedList.toString()).toBe('1,1,2,4,5'); linkedList.delete(1); expect(linkedList.toString()).toBe('2,4,5');