链表的中间结点
点击链接做题
思路代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
typedef struct ListNode ListNode;
struct ListNode* middleNode(struct ListNode* head) {
ListNode* slow = head, *fast = head;
//慢指针每次走1步,快指针每次走2步
while(fast && fast->next){//不能写while(fast->next && fast)
slow = slow->next;
fast = fast->next->next;
}
//此时slow指向的结点刚好就是中间结点
return slow;
}