Middle of the Linked List – Leetcode Solution

In this post, we are going to solve the 876. Middle of the Linked List problem of Leetcode. This problem 876. Middle of the Linked List is a Leetcode easy level problem. Let’s see the code, 876. Middle of the Linked List – Leetcode Solution.

Problem

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 :

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

Example 2 :

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

Now, let’s see the code of 876. Middle of the Linked List – Leetcode Solution.

Middle of the Linked List – Leetcode Solution

876. Middle of the Linked List – Solution in Java

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode middleNode(ListNode head) {
        ListNode slow = head;
        ListNode fast = head;
        
        while(fast != null && fast.next != null){
            slow = slow.next;
            fast = fast.next.next;
        }
        return slow;
    }
}

876. Middle of the Linked List – Solution in C++

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* middleNode(ListNode* head) {
        ListNode* fst = head;
        ListNode* slw = head;
        if(head==NULL) return NULL;
        
        else{
        while(fst!=NULL and fst->next!=NULL)
        {
            fst=fst->next->next;
             slw=slw->next;
        }
           
            return slw;
    }
    }
};

876. Middle of the Linked List – Solution in Python

def middleNode(self, head):
    tmp = head
    while tmp and tmp.next:
        head = head.next
        tmp = tmp.next.next
    return head

Note: This problem 876. Middle of the Linked List is generated by Leetcode but the solution is provided by CodingBroz. This tutorial is only for Educational and Learning purpose.

Leave a Comment

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