@@ -78,44 +78,38 @@ export default class DoublyLinkedList {
78
78
let deletedNode = null ;
79
79
let currentNode = this . head ;
80
80
81
- if ( currentNode !== null ) {
82
- do {
83
- if ( this . compare . equal ( currentNode . value , value ) ) {
84
- deletedNode = currentNode ;
85
-
86
- if ( deletedNode === this . head ) {
87
- // set head to second node, which will become new head
88
- this . head = deletedNode . next ;
89
-
90
- // set new head's previous to null
91
- if ( this . head ) {
92
- this . head . previous = null ;
93
- }
94
-
95
- // If all the nodes in list has same value that is passed as argument
96
- // then all nodes will get deleted, therefore tail needs to be updated
97
- if ( deletedNode === this . tail ) {
98
- this . tail = null ;
99
- }
100
- } else if ( deletedNode === this . tail ) {
101
- // set tail to second last node, which will become new tail
102
- this . tail = deletedNode . previous ;
103
-
104
- // set new tail's next to null
105
- if ( this . tail ) {
106
- this . tail . next = null ;
107
- }
108
- } else {
109
- const previousNode = deletedNode . previous ;
110
- const nextNode = deletedNode . next ;
111
- previousNode . next = nextNode ;
112
- nextNode . previous = previousNode ;
81
+ do {
82
+ if ( this . compare . equal ( currentNode . value , value ) ) {
83
+ deletedNode = currentNode ;
84
+
85
+ if ( deletedNode === this . head ) {
86
+ // set head to second node, which will become new head
87
+ this . head = deletedNode . next ;
88
+
89
+ // set new head's previous to null
90
+ if ( this . head ) {
91
+ this . head . previous = null ;
113
92
}
93
+
94
+ // If all the nodes in list has same value that is passed as argument
95
+ // then all nodes will get deleted, therefore tail needs to be updated
96
+ if ( deletedNode === this . tail ) {
97
+ this . tail = null ;
98
+ }
99
+ } else if ( deletedNode === this . tail ) {
100
+ // set tail to second last node, which will become new tail
101
+ this . tail = deletedNode . previous ;
102
+ this . tail . next = null ;
103
+ } else {
104
+ const previousNode = deletedNode . previous ;
105
+ const nextNode = deletedNode . next ;
106
+ previousNode . next = nextNode ;
107
+ nextNode . previous = previousNode ;
114
108
}
109
+ }
115
110
116
- currentNode = currentNode . next ;
117
- } while ( currentNode ) ;
118
- }
111
+ currentNode = currentNode . next ;
112
+ } while ( currentNode ) ;
119
113
120
114
return deletedNode ;
121
115
}
@@ -166,10 +160,7 @@ export default class DoublyLinkedList {
166
160
167
161
const deletedTail = this . tail ;
168
162
this . tail = this . tail . previous ;
169
-
170
- if ( this . tail ) {
171
- this . tail . next = null ;
172
- }
163
+ this . tail . next = null ;
173
164
174
165
return deletedTail ;
175
166
}
0 commit comments