Skip to content

Commit

Permalink
Update solution for problem 876
Browse files Browse the repository at this point in the history
  • Loading branch information
Gutsss77 committed Oct 20, 2024
1 parent e5dad3f commit 6975224
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions leetcode/src/876.c
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
// Function to find the middle node of a linked list
// this contains the edge cases also
struct ListNode* middleNode(struct ListNode* head) {
// Check if the list is empty or has only one node
if (head == NULL || head->next == NULL) {
return head;
}

struct ListNode* fast = head;
struct ListNode* slow = head;

struct ListNode *middleNode(struct ListNode *head)
{
struct ListNode *fast, *slow;
fast = slow = head;
while (fast && fast->next)
{
slow = slow->next;
fast = fast->next->next;
// Use two pointers to find the middle node
while (fast != NULL && fast->next != NULL) {
fast = fast->next->next; // Move fast pointer two steps
slow = slow->next; // Move slow pointer one step
}
return slow;
}

return slow; // Slow will be at the middle node
}

0 comments on commit 6975224

Please sign in to comment.