[Solved] Given the head of a singly linked list, return the middle node of the linked list. If there are two middle nodes, return the second middle node.

Leetcode solutions MLP Feature Image

Table of Contents

Question

Given the head of a singly linked list, return the middle node of the linked list.

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

Example 1:

lc midlist1
Input: head = [1,2,3,4,5]
Output: [3,4,5]
Explanation: The middle node of the list is node 3.

Example 2:

lc midlist2
Input: head = [1,2,3,4,5,6]
Output: [4,5,6]
Explanation: Since the list has two middle nodes with values 3 and 4, we return the second one.

Constraints:

  • The number of nodes in the list is in the range [1, 100].
  • 1 <= Node.val <= 100

Python Solution

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def middleNode(self, head: ListNode) -> ListNode:
        f=head
        s=head
        while 1:
            if f.next==None:
                return s
            elif f.next.next==None:
                return s.next
            f=f.next.next
            s=s.next

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top