找出链表倒数第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个指针
啊啊啊啊啊,白提及了那么多次