Skip to main content

Command Palette

Search for a command to run...

Solving Leetcode Interviews in Seconds with AI: Middle of the Linked List

Updated
2 min read

Introduction

In this blog post, we will explore how to solve the LeetCode problem "876" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

Problem Statement

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

Explanation

Here's an efficient solution to find the middle node of a singly linked list:

  • Two Pointers: Utilize two pointers, slow and fast. The slow pointer moves one step at a time, while the fast pointer moves two steps at a time.
  • Reaching the Middle: When the fast pointer reaches the end of the list (or None), the slow pointer will be pointing to the middle node.
  • Second Middle Node: The problem statement requires returning the second middle node in case of an even number of nodes. The two-pointer approach naturally leads the slow pointer to the second middle node when the fast pointer reaches the end.

  • Time and Space Complexity: O(n) time complexity, O(1) space complexity.

Code

    class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

def middleNode(head):
    slow = head
    fast = head

    while fast and fast.next:
        slow = slow.next
        fast = fast.next.next

    return slow

More from this blog

C

Chatmagic blog

2894 posts