File tree Expand file tree Collapse file tree 2 files changed +69
-4
lines changed Expand file tree Collapse file tree 2 files changed +69
-4
lines changed Original file line number Diff line number Diff line change 1+
2+
3+ const LinkedList = require ( './linkedlist' ) ;
4+
5+ LinkedList . prototype . deleteMiddleNode = deleteNode ;
6+
7+ let list , node ;
8+
9+ // ------ node 2
10+
11+ list = new LinkedList ( ) ;
12+ list . add ( 4 ) ;
13+ list . add ( 3 ) ;
14+ node = list . add ( 2 ) ;
15+ list . add ( 1 ) ;
16+
17+ list . deleteMiddleNode ( node ) ;
18+ console . log ( list . toString ( ) ) ; // 1 -> 3 -> 4
19+
20+ // ------ node 3
21+
22+ list = new LinkedList ( ) ;
23+ list . add ( 4 ) ;
24+ node = list . add ( 3 ) ;
25+ list . add ( 2 ) ;
26+ list . add ( 1 ) ;
27+
28+ list . deleteMiddleNode ( node ) ;
29+ console . log ( list . toString ( ) ) ; // 1 -> 2 -> 4
30+
31+ // ------ node 1
32+
33+ list = new LinkedList ( ) ;
34+ list . add ( 4 ) ;
35+ list . add ( 3 ) ;
36+ list . add ( 2 ) ;
37+ node = list . add ( 1 ) ;
38+
39+ list . deleteMiddleNode ( node ) ;
40+ console . log ( list . toString ( ) ) ; // 2 -> 3 -> 4
41+
42+ // ------ node 4
43+
44+ list = new LinkedList ( ) ;
45+ node = list . add ( 4 ) ;
46+ list . add ( 3 ) ;
47+ list . add ( 2 ) ;
48+ list . add ( 1 ) ;
49+
50+ list . deleteMiddleNode ( node ) ;
51+ console . log ( list . toString ( ) ) ; // 1 -> 2 -> 3 -> 4
52+
53+
54+ // -----------------------
55+ list . deleteMiddleNode ( ) ;
56+
57+ /**
58+ * O (n)
59+ * @param node
60+ */
61+ function deleteNode ( node ) {
62+ if ( ! node || ! node . next ) { return ; }
63+ const next = node . next ;
64+ node . data = next . data ;
65+ node . next = next . next
66+ }
Original file line number Diff line number Diff line change @@ -11,13 +11,12 @@ class LinkedList {
1111
1212 // O(1)
1313 add ( data ) {
14+ const newHead = new Node ( data ) ;
1415 if ( this . head ) {
15- let newHead = new Node ( data ) ;
1616 newHead . next = this . head ;
17- this . head = newHead ;
18- } else {
19- this . head = new Node ( data ) ;
2017 }
18+ this . head = newHead ;
19+ return newHead ;
2120 }
2221
2322 // O(n)
You can’t perform that action at this time.
0 commit comments