题目描述
输入一个链表,输出该链表中倒数第k个结点。
思路:
利用一前一后两个指针,先拉出两个指针的距离为k-1,然后一起移动两个指针,直到后指针指向链表尾部,则前指针就是倒数第K个。
class Solution
{
public:
ListNode *FindKthToTail(ListNode *pListHead, unsigned
int k)
{
if (pListHead ==
NULL)
return NULL;
ListNode *low =
pListHead;
ListNode *high =
pListHead;
for (
int i =
0; i < k -
1; i++
)
{
if (high->next ==
NULL)
return NULL;
high = high->
next;
}
while (high->next !=
NULL)
{
high = high->
next;
low = low->
next;
}
return low;
}
};
转载于:https://www.cnblogs.com/ruoh3kou/p/10050781.html