查找单向链表中倒数第k(k为正整数)个位置上的结点,查找成功输出该结点的data值,并返回1,否则只返回0
/******************************************************
*
* name : FindKNode
* function : 查找链表中倒数第k(k为正整数)个位置上的结点
* 查找成功输出该结点的data值,并返回1,否则只返回0
* argument
* @head : 链表头结点的地址
* @k : 需要查找的位置
*
* retval : 成功返回1,否则返回0
* author : Dazz
* date : 2024/4/22
* note : None
*
* *******************************************************/
bool FindKNode(LinkList_t *head, unsigned int k)
{
// 错误处理
if (NULL == head)
{
printf("请输入有效地址\n");
return false;
}
// 备份头结点
LinkList_t *temp1 = head;
// 用循环备份第k个结点
LinkList_t *temp2 = head;
for (int i = k - 1; i > 0; i--)
{
temp2 = temp2->next;
}
// 遍历链表,找到第k个结点
while (temp1->next)
{
temp1 = temp1->next;
temp2 = temp2->next;
}
// 输出第k个结点中数据域的值
printf("%d\n", temp2->data);
return true;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步