✅C++ || ✅2 Approaches || ✅Simple
Plaese Upvote If It Helps\n\n\n\n\nApproach 1 : (Using Slow And Fast Pointer)\n\n\nclass Solution {\npublic:\n    ListNode* middleNode(ListNode* head) \n    {\n
**Plaese Upvote If It Helps**\n\n![image](https://assets.leetcode.com/users/images/1f2a8683-0e82-4d61-8749-79d2660097a1_1670217153.843377.png)\n\n\n**Approach 1 : (Using Slow And Fast Pointer)**\n\n```\nclass Solution {\npublic:\n    ListNode* middleNode(ListNode* head) \n    {\n        ListNode* slow = head;\n        ListNode* fast = head;\n        \n        while(fast && fast->next)\n        {\n            slow=slow->next;\n            fast=fast->next->next;\n        }\n        return slow;\n    }\n};\n```\n\n\n**Approach 2 : Using Length**\n\n```\nclass Solution {\npublic:\n    ListNode* middleNode(ListNode* head) \n    {\n        ListNode* itr = head;\n        int len=0;\n        while(itr)\n        {\n            len++;\n            itr = itr->next;\n        }\n        \n        itr = head;\n        for(int i=0;i<len/2;i++)\n        {\n            itr = itr->next;\n        }\n        return itr;\n    }\n};\n```
['Two Pointers']