题目:
输入一个链表,输出该链表中倒数第k个结点。
解题思路:
寻找到整个链表的长度Length, 那么倒数第k个节点就是正数第Length-k个节点。
解题代码:
ListNode * Solution::FindKthToTail(ListNode * pListHead, unsigned int k)
{
if (pListHead == NULL || pListHead->next == NULL || k <= 0)
{
return NULL;
}
int Length = 0;
ListNode * p = pListHead;
ListNode * r = pListHead;
while (p)
{
p = p->next;
Length++;
}
if (k > Length)
{
return NULL;
}
for (size_t i = 0; i < Length - k; i++)
{
r = r->next;
}
return r;
}
测试结果: