Skip to content

Commit 7018c36

Browse files
realDuYuanChaogithub-actions
andauthored
Middle of the linked list (examplehub#89)
* middle-of-the-linked-list * Formatted with Google Java Formatter Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
1 parent 325a0e3 commit 7018c36

File tree

2 files changed

+101
-0
lines changed

2 files changed

+101
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.examplehub.leetcode.easy;
2+
3+
import com.examplehub.leetcode.ListNode;
4+
5+
/** https://leetcode.com/problems/middle-of-the-linked-list/ */
6+
public class MiddleOfTheLinkedList {
7+
8+
public static ListNode solution1(ListNode head) {
9+
int len = 0;
10+
ListNode p = head;
11+
while (p != null) {
12+
len++;
13+
p = p.next;
14+
}
15+
p = head;
16+
for (int i = 1; i <= len / 2; i++) {
17+
p = p.next;
18+
}
19+
return p;
20+
}
21+
22+
public static ListNode solution2(ListNode head) {
23+
ListNode p1 = head;
24+
ListNode p2 = head;
25+
while (p1 != null && p1.next != null) {
26+
p1 = p1.next.next;
27+
p2 = p2.next;
28+
}
29+
return p2;
30+
}
31+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package com.examplehub.leetcode.easy;
2+
3+
import static org.junit.jupiter.api.Assertions.*;
4+
5+
import com.examplehub.leetcode.ListNode;
6+
import org.junit.jupiter.api.Test;
7+
8+
class MiddleOfTheLinkedListTest {
9+
@Test
10+
void testSolution1() {
11+
ListNode head = new ListNode(1);
12+
ListNode node2 = new ListNode(2);
13+
ListNode node3 = new ListNode(3);
14+
ListNode node4 = new ListNode(4);
15+
ListNode node5 = new ListNode(5);
16+
17+
head.next = node2;
18+
node2.next = node3;
19+
node3.next = node4;
20+
node4.next = node5;
21+
22+
assertSame(node3, MiddleOfTheLinkedList.solution1(head));
23+
24+
head = new ListNode(1);
25+
node2 = new ListNode(2);
26+
node3 = new ListNode(3);
27+
node4 = new ListNode(4);
28+
node5 = new ListNode(5);
29+
ListNode node6 = new ListNode(6);
30+
31+
head.next = node2;
32+
node2.next = node3;
33+
node3.next = node4;
34+
node4.next = node5;
35+
node5.next = node6;
36+
37+
assertSame(node4, MiddleOfTheLinkedList.solution1(head));
38+
}
39+
40+
@Test
41+
void testSolution2() {
42+
ListNode head = new ListNode(1);
43+
ListNode node2 = new ListNode(2);
44+
ListNode node3 = new ListNode(3);
45+
ListNode node4 = new ListNode(4);
46+
ListNode node5 = new ListNode(5);
47+
48+
head.next = node2;
49+
node2.next = node3;
50+
node3.next = node4;
51+
node4.next = node5;
52+
53+
assertSame(node3, MiddleOfTheLinkedList.solution2(head));
54+
55+
head = new ListNode(1);
56+
node2 = new ListNode(2);
57+
node3 = new ListNode(3);
58+
node4 = new ListNode(4);
59+
node5 = new ListNode(5);
60+
ListNode node6 = new ListNode(6);
61+
62+
head.next = node2;
63+
node2.next = node3;
64+
node3.next = node4;
65+
node4.next = node5;
66+
node5.next = node6;
67+
68+
assertSame(node4, MiddleOfTheLinkedList.solution2(head));
69+
}
70+
}

0 commit comments

Comments
 (0)