解题思路:由于单链表只能从前往后遍历 因此不可能倒着找第k个节点
所以: 1.遍历链表求出,链表长度n;
2.倒数k=正数第n-k个节点
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
int n=0;
for(auto p=pListHead;p;p=p->next) //遍历链表 计算链表长度
{
n++;
}
if(k>n) return nullptr;
auto p=pListHead;
for(int i=0;i<n-k;i++) //寻找倒数k结点
{
p=p->next;
}
return p;
}
};