1
+ import { describe , expect , test } from 'bun:test' ;
2
+ import { ListNode , middleNode } from './middle-of-linked-list' ;
3
+
4
+ describe ( 'middleNode' , ( ) => {
5
+ test ( 'should return null for an empty list' , ( ) => {
6
+ expect ( middleNode ( null ) ) . toBeNull ( ) ;
7
+ } ) ;
8
+
9
+ test ( 'should return the only node for a single-node list' , ( ) => {
10
+ const head = new ListNode ( 1 ) ;
11
+ expect ( middleNode ( head ) ) . toBe ( head ) ;
12
+ } ) ;
13
+
14
+ test ( 'should return the middle node for an odd-length list' , ( ) => {
15
+ const head = new ListNode ( 1 , new ListNode ( 2 , new ListNode ( 3 ) ) ) ;
16
+ expect ( middleNode ( head ) ) . toBe ( head . next ) ; // Middle node is 2
17
+ } ) ;
18
+
19
+ test ( 'should return the second middle node for an even-length list' , ( ) => {
20
+ const head = new ListNode ( 1 , new ListNode ( 2 , new ListNode ( 3 , new ListNode ( 4 ) ) ) ) ;
21
+ expect ( middleNode ( head ) ) . toBe ( head ?. next ?. next ?? null ) ; // Middle node is 3
22
+ } ) ;
23
+
24
+ test ( 'should return the middle node for a longer odd-length list' , ( ) => {
25
+ const head = new ListNode ( 1 , new ListNode ( 2 , new ListNode ( 3 , new ListNode ( 4 , new ListNode ( 5 ) ) ) ) ) ;
26
+ expect ( middleNode ( head ) ) . toBe ( head ?. next ?. next ?? null ) ; // Middle node is 3
27
+ } ) ;
28
+
29
+ test ( 'should return the second middle node for a longer even-length list' , ( ) => {
30
+ const head = new ListNode ( 1 , new ListNode ( 2 , new ListNode ( 3 , new ListNode ( 4 , new ListNode ( 5 , new ListNode ( 6 ) ) ) ) ) ) ;
31
+ expect ( middleNode ( head ) ) . toBe ( head ?. next ?. next ?. next ?? null ) ; // Middle node is 4
32
+ } ) ;
33
+ } ) ;
0 commit comments