本文主要是介绍链表中倒数最后k个结点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
链表中倒数最后k个结点
链表中倒数最后k个结点_牛客题霸_牛客网输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。。题目来自【牛客题霸】https://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9
描述
输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。
如果该链表长度小于k,请返回一个长度为 0 的链表。
思路:
快指针先走k步,然后快慢指针一起走,如果快指针为空时,那么慢指针的指向即为链表倒数第k个结点。
特殊情况为k>列表的长度。这是应返回NULL
代码:
struct ListNode* FindKthToTail(struct ListNode* pHead, int k ) {// write code herestruct ListNode*slow=pHead,*fast=pHead;while(k--){if (fast==NULL) {return NULL;}fast=fast->next;}while (fast) {fast=fast->next;slow=slow->next;}return slow;}
这篇关于链表中倒数最后k个结点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!