/** * 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类 */ int count = 0; ListNode* tail; ListNode* ptr; ListNode* FindKthToTail(ListNode* pHead, int k) { // write code here if (!pHead) { //空链表直接返回空 return nullptr; } ptr = pHead; while (ptr) { //遍历链表的大小 ptr = ptr->next; count++; } if (count < k) { //如果链表长度 < k 直接返回k return nullptr; } for (int i = 0; i < count - k; i++) { pHead = pHead->next; } //跳过前count - k 个节点, 直接返回 count - k + 1 以及之后的节点 return pHead; } };