原題鏈接:https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&&tqId=11167&rp=2&ru=/activity/oj&qru=/ta/coding-interviews/question-ranking
目錄
1. 題目描述
2. 思路分析
3. 代碼實(shí)現(xiàn)
1. 題目描述
2. 思路分析
快慢指針?lè)?/span>?(如果有小伙伴不了解快慢指針?lè)?,可以看看這篇文章:https://blog.csdn.net/m0_62531913/article/details/132309395?spm=1001.2014.3001.5502)
定義快慢指針fast和slow。首先讓fast先走k步,然后fast和slow同時(shí)走,fast走到末尾時(shí),slow就走到倒數(shù)第k個(gè)節(jié)點(diǎn)。最后我們返回slow即可。
這題需要注意的是,k有可能大于鏈表長(zhǎng)度,遇到這種情況,我們直接返回空指針NULL。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-651783.html
3. 代碼實(shí)現(xiàn)
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
*
* @param pListHead ListNode類
* @param k int整型
* @return ListNode類
*/
struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {
struct ListNode *slow=pListHead,*fast=pListHead;
while(k--)
{
//鏈表沒(méi)有k步長(zhǎng),倒數(shù)就算是空
if(fast==NULL)
return NULL;
else
fast=fast->next;
}
while(fast)
{
slow=slow->next;
fast=fast->next;
}
return slow;
}
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-651783.html
到了這里,關(guān)于【數(shù)據(jù)結(jié)構(gòu)OJ題】鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!