/** * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * * @param pListHead ListNode类 * @param k int整型 * @return ListNode类 */ struct ListNode* FindKthToTail(struct ListNode* pListHead, int k) { struct ListNode* fast = pListHead, * slow = pListHead; int tmp = k - 1; while (fast && fast->next) { while (tmp) { fast = fast->next; if (fast == NULL) { break; } tmp--; } if(tmp == 0) { if (fast->next) { slow = slow->next; fast = fast->next; } } else { break; } } if (tmp == 0) { return slow; } else { return NULL; } }