1. 程式人生 > 其它 >牛客網:連結串列中倒數第k個結點

牛客網:連結串列中倒數第k個結點

技術標籤:牛客網

題目描述

連結串列中倒數第k個結點

輸入一個連結串列,輸出該連結串列中倒數第k個結點

示例1:

輸入:1,{1,2,3,4,5}
輸出:{5}

題解

本題依舊採用快(fast)慢(slow)指標即可,題目要求求出連結串列中倒數第k個結點,那麼先讓fast指標先走k步,然後在讓slow指標開始走,兩個指標同時走,每次走一步,直至fast 等於NULL時結束。

初始情況:
在這裡插入圖片描述
①讓fast先走k步,(本例中k為1)
在這裡插入圖片描述
②再讓slow指標開始走,兩個指標每次向後走一個
在這裡插入圖片描述
③重複②的過程,直至fast == NULL結束
在這裡插入圖片描述

題解程式碼

struct ListNode*
FindKthToTail(struct ListNode* pListHead,int k) { // write code here struct ListNode* slow= pListHead,*fast= pListHead; while(k--){ if(fast == NULL){ return NULL; }else{ fast = fast->next; } } while(fast != NULL){ slow = slow->
next; fast = fast->next; } return slow; }