找出链表倒数第k个结点
链表中倒数第k个结点
https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&tqId=11167&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
struct ListNode* first;
struct ListNode* second;
first=pListHead;
for(int i=0;i<k;i++)
{
if(!first) return nullptr;
else first=first->next;
}
second=pListHead;
while(first!=NULL)
{
first=first->next;
second=second->next;
}
return second;
}
};思路不难,两个指针,第一个指针先走K步,然后两个一起走,先走的那个到了结尾空指针,后面那个也到了倒数第K个
坑的是它可能没有倒数第K个指针
啊啊啊啊啊,白提及了那么多次