NC322. 链表的中间结点
描述
示例1
输入:
{1,2,3}
输出:
{2,3}
说明:
此列表中的中间为结点 2 ,测评系统对该结点序列化表述是 {2,3}示例2
输入:
{1,2,3,4}
输出:
{3,4}
说明:
此列表中的中间为结点 3 ,测评系统对该结点序列化表述是 {3,4}C++ 解法, 执行用时: 3ms, 内存消耗: 396KB, 提交时间: 2022-07-12
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: ListNode* middleNode(ListNode* head) { ListNode* slow=head; ListNode* fast=head; while(fast&&fast->next){ slow=slow->next; fast=fast->next->next; } return slow; } };
C++ 解法, 执行用时: 3ms, 内存消耗: 396KB, 提交时间: 2022-03-04
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ ListNode* middleNode(ListNode* head) { // write code here ListNode* slow=head,*fast=head; while(fast->next&&fast->next->next){ slow=slow->next; fast=fast->next->next; } if(fast->next==nullptr){ return slow; } else return slow->next; } };
C++ 解法, 执行用时: 3ms, 内存消耗: 400KB, 提交时间: 2022-05-21
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ ListNode* middleNode(ListNode* head) { // write code here ListNode* fast = head, *slow = head; while (fast && fast->next) { fast = fast->next->next; slow = slow->next; } return slow; } };
C++ 解法, 执行用时: 3ms, 内存消耗: 400KB, 提交时间: 2022-03-08
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ ListNode* middleNode(ListNode* head) { // write code here if(head==nullptr) return head; ListNode *p=head; ListNode *q=head->next; for(;q!=nullptr;){ p=p->next; if(q->next==nullptr) q=nullptr; else q=q->next->next; } return p; } };
C++ 解法, 执行用时: 3ms, 内存消耗: 404KB, 提交时间: 2022-05-20
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ ListNode* middleNode(ListNode* head) { // write code here ListNode* fast=head,* slow=head; while(fast!=nullptr && fast->next!= nullptr){ slow=slow->next; fast=fast->next->next; } return slow; } };