返回链表中间节点

ListNode *FindKthToTail(ListNode* pListHead,int k){
    ListNode* slow=pListHead;  //定义一个慢指针
    ListNode* fast=pListHead;  //定义一个快指针
    while(k--){
        if(fast){ //当快指针不为空时,
        fast=fast->next; //先让快指针走k步。
        }else{
            return NULL;
        }
        }
    while(fast){
        fast=fast->next; //然后快慢指针同时走,直到快指针为空为止
        slow=slow->next;
        }
    return slow;  //这时返回慢指针的位置即时链表中间节点
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章