假设该链表只给出了头指针 head。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k(k为正整数)个位置上的结点。若查找成功,算法输出该结点的 data值,并返回1;否则,只返回 0。
/*******************************************************************
*
* 函数名称: LList_found
* 函数功能: 查找链表中倒数第k(k为正整数)个位置上的结点。若查找成功,算法输出该结点的 data值,并返回 1;否则,只返回 0。
* 函数参数:
* @a : *head
* @b :
* 返回结果: 1或0
* 注意事项: None
* 函数作者: [email protected]
* 创建日期: 2024/04/22
* 修改历史:
* 函数版本: V1.0
* *****************************************************************/
int LList_found(*head)
{
int count = 1,temp = 0;
if(NULL == head->next)//判断是否只有头指针,如果只有头指针就返回0
{
return 0;
}
while(head->next)//遍历链表
{
head = head->next;
count++;//记录链表个数
}
for(int i = 0;i<count-k;i++)
{
temp = head->data;//对新节点数据域进行备份
head = head->next;//再次遍历
}
printf("%d\n",temp);
return 1;
}
标签:返回,结点,head,链表,算法,查找
From: https://www.cnblogs.com/lwj294/p/18151541