/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) : val(x), next(nullptr) {}
* };
*/
class Solution {
// public:
// /**
// * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
// *
// *
// * @param pHead ListNode类
// * @param k int整型
// * @return ListNode类
// */
// ListNode* FindKthToTail(ListNode* pHead, int k) {
// // write code here
// }
// };
public:
ListNode* FindKthToTail(ListNode* pHead, int k) {
if (pHead == NULL)
return NULL;
ListNode* first = pHead;
ListNode* second = pHead;
//第一个指针先走k步
while (k-- > 0) {
if (first == NULL)
return NULL;
first = first->next;
}
//然后两个指针在同时前进
while (first != NULL) {
first = first->next;
second = second->next;
}
return second;
}
};



京公网安备 11010502036488号