<span style="font-size:18px;">
/* 找出单链表中倒数第K个数 */
/* 查找过程中,设置两个指针,让其中一个指针比另一个指针先前移动 K-1 步 ,然后两个指针同时移动,循环直到先行指针为NULL */
template<typename T>
struct LinkedList
{
T data;
LinkedList *next;
};
template<typename T>
LinkedList<T>* FindElem(LinkedList<T>* head, int k)
{
LinkedList<T> *ptr1, *ptr2;
ptr1 = ptr2 = head;
for (int i=0; i<k; ++i) //前移K步
{
ptr1 = ptr1->next;
}
while (ptr1 != NULL)
{
ptr1 = ptr1->next;
ptr2 = ptr2->next;
}
return ptr2;
};
</span>
本文介绍了一种高效查找单链表中倒数第K个元素的方法。通过设置两个指针,先让其中一个指针向前移动K-1步,随后两个指针同步移动直至前行指针到达链表尾部,此时另一指针即指向目标元素。
1241

被折叠的 条评论
为什么被折叠?



