题目描述
输入一个链表,输出该链表中倒数第k个结点。
代码实现
//双指针,注意考虑各种情况就可以啦。
//k ==0;k小于pListHead的长度;还有pListHead为空
Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
ListNode* p = pListHead ;
ListNode* q = pListHead ;
int x = 0 ;
if(k == 0||pListHead == nullptr){
return nullptr;
}
while(pListHead){
x++;
pListHead = pListHead->next;
}
if(x<k){
return nullptr;
}
for(int i =0;i<k-1;i++){
p = p ->next ;
}
while(p->next != nullptr){
p = p -> next;
q = q -> next;
}
return q;
}
};