@@ -122,33 +122,38 @@ class LinkedList {
122
122
}
123
123
124
124
removeAt ( index ) {
125
- if ( ! this . head ) {
126
- return null ;
127
- }
128
- if ( index == 1 ) {
129
- this . head = this . head . next
130
- this . size -= 1 ;
131
- return
132
- }
133
- if ( index >= this . size ) {
134
- return this . removeFromEnd ( ) ;
135
-
136
- }
137
-
138
- let address = this . head ;
139
- let previous = address ;
140
- let count = index ;
141
-
142
- while ( count != 1 ) {
143
- previous = address ;
144
- address = address . next ;
145
- count -= 1 ;
146
- }
147
-
148
- previous . next = address . next ;
149
- console . log ( address . next )
150
- this . size -= 1 ;
125
+ if ( ! this . head ) {
126
+ return null ;
127
+ }
128
+ if ( index === 0 ) {
129
+ const node = this . head ;
130
+ this . head = this . head . next ;
131
+ this . size -= 1 ;
132
+ // set the next of the node null
133
+ node . next = null ;
134
+ return node ;
135
+ }
136
+
137
+ if ( index >= this . size - 1 ) {
138
+ return this . removeFromEnd ( ) ;
139
+ }
140
+
141
+ let address = this . head ;
142
+ let previous = address ;
143
+ let count = index ;
144
+
145
+ while ( count >= 1 ) {
146
+ previous = address ;
147
+ address = address . next ;
148
+ count -= 1 ;
151
149
}
150
+ const node = previous . next ;
151
+ previous . next = address . next ;
152
+ this . size -= 1 ;
153
+
154
+ node . next = null ;
155
+ return node ;
156
+ }
152
157
153
158
length ( ) {
154
159
return this . size ;
@@ -159,6 +164,30 @@ class LinkedList {
159
164
this . tail = this . head ;
160
165
this . size = 0 ;
161
166
}
167
+
168
+ traverseList ( ) {
169
+ const arr = [ ] ;
170
+ let node = this . head ;
171
+ while ( node !== null ) {
172
+ arr . push ( node . data ) ;
173
+ node = node . next ;
174
+ }
175
+ return arr ;
176
+ }
162
177
}
163
178
179
+ // const ll = new LinkedList();
180
+ // ll.addAtBeginning(20);
181
+ // ll.addAtBeginning(15);
182
+ // ll.addAtBeginning(10);
183
+ // ll.addAtBeginning(5);
184
+
185
+ // console.log(ll.traverseList());
186
+
187
+ // console.log(ll.removeAt(0));
188
+ // console.log(ll.traverseList());
189
+
190
+ // console.log(ll.removeAt(1));
191
+ // console.log(ll.traverseList());
192
+
164
193
module . exports = { LinkedList, Node } ;
0 commit comments