# [LeetCode]#876. Middle of the Linked List

Environment: Python 3.8

Key technique: List node

Given a non-empty, singly linked list with head node `head`, return a middle node of linked list.

If there are two middle nodes, return the second middle node.

Example 1:

`Input: [1,2,3,4,5]Output: Node 3 from this list (Serialization: [3,4,5])The returned node has value 3.  (The judge's serialization of this node is [3,4,5]).Note that we returned a ListNode object ans, such that:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL.`

Example 2:

`Input: [1,2,3,4,5,6]Output: Node 4 from this list (Serialization: [4,5,6])Since the list has two middle nodes with values 3 and 4, we return the second one.`

Analysis:

`class ListNode:     def __init__(self, val=0, next=None):         self.val = val         self.next = nextinput=[1,2,3,4,5]head=ListNode(1)head.next=ListNode(2)head.next.next=ListNode(3)head.next.next.next=ListNode(4)head.next.next.next.next=ListNode(5)`

2. And I see below data.

3. Find all .next data and find middle number.

Solution:

`class Solution():    def middleNode(self, head):        A = [head]        while A[-1].next:            A.append(A[-1].next)        return A[int(len(A) / 2)]`

Submissions:

Reference: