Skip to content

Commit 0156d6a

Browse files
BarklimBarklim
authored andcommitted
Create linked list
1 parent a7eb7f7 commit 0156d6a

File tree

4 files changed

+137
-15
lines changed

4 files changed

+137
-15
lines changed

2095-delete-the-middle-node-of-a-linked-list.js

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,21 @@
2424
* @return {ListNode}
2525
*/
2626
var deleteMiddle = function(head) {
27-
let slow = new ListNode(0, head);
28-
let fast = head;
29-
30-
if (!head.next) {
31-
return null;
32-
}
33-
34-
while (fast && fast.next) {
35-
slow = slow.next;
36-
fast = fast.next.next;
37-
}
38-
39-
slow.next = slow.next.next;
40-
41-
return head;
27+
// slow = head
28+
// fast = head.next.next
29+
let slow = new Node(0, null, head);
30+
let fast = head;
31+
32+
if (!head.next) {
33+
return null;
34+
}
35+
36+
while (fast && fast.next) {
37+
slow = slow.next;
38+
fast = fast.next.next;
39+
}
40+
41+
slow.next = slow.next.next;
42+
43+
return head;
4244
};

example/3.Linkedlist/0707.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ console.log(myLinkedList);
7474
console.log(myLinkedList.get(1)); // 3
7575
console.log(myLinkedList.get(2)); // -1
7676
console.log(myLinkedList.get(3)); // -1
77+
myLinkedList.addAtTail(4);
78+
console.log(myLinkedList.get(2)); // 2
79+
console.log(myLinkedList);
7780

7881

7982
// class Node {
@@ -184,3 +187,16 @@ console.log(myLinkedList.get(3)); // -1
184187
// this.length--
185188
// };
186189

190+
// MyLinkedList.prototype.toArray = function() {
191+
// const nodes = [];
192+
193+
// let currentNode = this.head;
194+
// while (currentNode) {
195+
// nodes.push(currentNode.val);
196+
// currentNode = currentNode.next;
197+
// }
198+
199+
// return nodes;
200+
// };
201+
202+

example/3.Linkedlist/0876.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
* 876. Middle of the Linked List
3+
* https://leetcode.com/problems/middle-of-the-linked-list/
4+
* Difficulty: Easy
5+
*
6+
* Given the head of a singly linked list, return the middle node of the linked list.
7+
*
8+
* If there are two middle nodes, return the second middle node.
9+
*/
10+
11+
/**
12+
* Definition for singly-linked list.
13+
* function ListNode(val, next) {
14+
* this.val = (val===undefined ? 0 : val)
15+
* this.next = (next===undefined ? null : next)
16+
* }
17+
*/
18+
19+
/**
20+
* @param {ListNode} head
21+
* @return {ListNode}
22+
*/
23+
var middleNode = function(head) {
24+
25+
};
26+
27+
const myLinkedList = new MyLinkedList();
28+
let head = myLinkedList.head;
29+
myLinkedList.addAtHead(1);
30+
myLinkedList.addAtTail(2);
31+
myLinkedList.addAtTail(3);
32+
33+
console.log('middleNode');
34+
console.log(middleNode(head).val); // 1 2 3 // 2
35+
myLinkedList.addAtTail(4);
36+
console.log(middleNode(head).val); // 1 2 3 4 // 2
37+
myLinkedList.addAtTail(5);
38+
console.log(middleNode(head).val); // 12 3 45 // 3
39+
myLinkedList.addAtTail(6);
40+
console.log(middleNode(head).val); // 12 3 4 56 // 3
41+
myLinkedList.addAtTail(7);
42+
myLinkedList.addAtTail(8);
43+
console.log(middleNode(head).val); // 123 4 5 678 // 4
44+
myLinkedList.addAtTail(9);
45+
console.log(middleNode(head).val); // 1234 5 6789 // 5
46+
47+
48+

example/3.Linkedlist/2095.js

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/**
2+
* 2095. Delete the Middle Node of a Linked List
3+
* https://leetcode.com/problems/delete-the-middle-node-of-a-linked-list/
4+
* Difficulty: Medium
5+
*
6+
* You are given the head of a linked list. Delete the middle node, and return the head
7+
* of the modified linked list.
8+
*
9+
* The middle node of a linked list of size n is the ⌊n / 2⌋th node from the start using
10+
* 0-based indexing, where ⌊x⌋ denotes the largest integer less than or equal to x.
11+
*
12+
* For n = 1, 2, 3, 4, and 5, the middle nodes are 0, 1, 1, 2, and 2, respectively.
13+
*/
14+
15+
/**
16+
* Definition for singly-linked list.
17+
* function ListNode(val, next) {
18+
* this.val = (val===undefined ? 0 : val)
19+
* this.next = (next===undefined ? null : next)
20+
* }
21+
*/
22+
/**
23+
* @param {ListNode} head
24+
* @return {ListNode}
25+
*/
26+
var deleteMiddle = function(head) {
27+
28+
};
29+
30+
const myLinkedList = new MyLinkedList();
31+
let head = myLinkedList.head;
32+
myLinkedList.addAtHead(1);
33+
myLinkedList.addAtTail(2);
34+
myLinkedList.addAtTail(3);
35+
myLinkedList.addAtTail(4);
36+
myLinkedList.addAtTail(5);
37+
myLinkedList.addAtTail(6);
38+
myLinkedList.addAtTail(7);
39+
40+
console.log('deleteNode');
41+
console.log(myLinkedList.toArray().join(','));
42+
43+
console.log('deleteNode 4');
44+
deleteMiddle(head) // 123 4 567 // 123 567
45+
console.log(myLinkedList.toArray().join(','));
46+
47+
console.log('deleteNode 35'); // 12 3 5 67 // 12 5 67
48+
deleteMiddle(head)
49+
console.log(myLinkedList.toArray().join(','));
50+
51+
console.log('deleteNode 3'); // 12 3 67 // 12 67
52+
deleteMiddle(head)
53+
console.log(myLinkedList.toArray().join(','));
54+
55+
56+

0 commit comments

Comments
 (0)