链表的中间结点,简单的快慢指针问题

链表的中间结点,简单的快慢指针问题_第1张图片

链表的中间结点,简单的快慢指针问题_第2张图片 

 链表的中间结点,简单的快慢指针问题_第3张图片

链表的中间结点,简单的快慢指针问题_第4张图片 

总结

 

struct ListNode* middleNode(struct ListNode* head) {
    struct ListNode*fast=head;
    struct ListNode*slow=head;

    while( fast && fast->next)//结束条件
    {
       slow=slow->next;
       fast=fast->next->next;
    }
    return slow;
}

你可能感兴趣的:(面试题,链表,数据结构)