题目描述:
输入一个链表,输出该链表中倒数第k个结点。
示例1
输入
1,{1,2,3,4,5}
返回值
{5}
代码实现:
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
//当链表为空且k=0时无效
if(pListHeadNULL&&k0)
{
return NULL;
}
ListNodeahead=pListHead;//从k-1节点出发的指针
ListNodebehind=pListHead;//从头节点出发的指针
// 第一个指针从链表的头结点走K-1步
for(unsigned int i=0;i<k-1;++i)
{
if(ahead->next!=NULL)
{
ahead=ahead->next;
}
return NULL;
}
// 第k个节点开始,两个指针同时遍历
while(ahead->next!=NULL)
{
ahead=ahead->next;
behind=behind->next;
}
return behind;
}
};