FindNum

查找倒数第k个指针

image

1)通过双指针错位移动来实现

2)
1.定义两个指针都指向首结点

​ 2.先让 first 指针移动并用 cnt 计数

​ 3.当 cnt == k 时,second开始移动

​ 4.当 first 到最尾时,second就抵达 k 的位置

3)
/*****************************************************************************
*                 函数名称:	FindNum
*                 函数功能:查找倒数第k个数
*                 函数参数:
*						@a:Head	需要查找的链表
*						@b:k	要查找的数
*                 返回结果:bool
*                 注意事项:none
*                 函数作者:c7355608bs@136.com
*                 创建日期:2024/4/22
*                 修改历史:2024/4
*                 函数版本:1.0
*
*****************************************************************************/

bool FindNum(LList_t *Head,int k)
{

	int cnt = 0;
	//1.判断链表是否为空,如果为空,则直接插入即可
	if (NULL == Head->next)
	{
		printf("链表为空,查找失败\n");
		return false;
	}
	LList_t * first = Head->next;
	LList_t * second = Head->next;
	while(first->next)
	{
		
		first = first->next;
		cnt++;
		if(cnt >= k){
			second = second->next;
		}

	}
	printf("倒数第%d的值%d\n",k,second->data);

}
posted @ 2024-04-23 00:17  歪币八卜  阅读(47)  评论(0)    收藏  举报