/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* findKthToTail(ListNode* pListHead, int k) { int len = 0; //不从第一个结点开始是因为当链表为空时,最后会返回一个不存在的节点,这会导致SF。 auto p = pListHead; while (p) { p = p -> next; len ++; } //特判长度小于k的情况 if (len < k) return NULL; p = pListHead; for (int i = 1; i < len - k + 1; i ++) p = p -> next; return p; }};