输入一个链表,输出该链表中倒数第k个结点。
思路:求倒数第K个链表节点需要用到两个指针,先让第一个指针走K个节点,然后让两个指针再共同前进,当第一个指针到达链表尾部的时候,此时第二个指针正好到达倒数第K个节点的位置。
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
auto p1 = pListHead;
auto p = pListHead;
for(int i=0; i!=k; ++i)
{
if(!p1)
return nullptr;
else
p1 = p1->next;
}
while(p1){
p1 = p1->next;
p = p->next;
}
return p;
}
};