查找链表中倒数第k(k为正整数)个位置上的结点。若查找成功,算法输出该结点的data值,并返回 1:否则,只返回 0。
/*************************************************
*
* func name :Find
* func function :查找链表中倒数第k(k为正整数)个位置上的结点。若查找成功,算法输出该结点的data值,并返回 1:否则,只返回 0。
* func parameter:
* @head:链表头结点的地址
* @k :要查找的结点(倒数第k个)
*
* return :int
* note :None
* func author :momolyl@126.com
* date :2024/04/22
* version :V1.0
**************************************************/
typedef int datatype;
typedef struct LkList
{
datatype data;
struct LkList *next;
} L;
int Find(L *head, int k)
{
L *phead = head;
int count = 0;
while (phead->next) // 遍历链表统计结点的个数
count++;
if (k > count) // 判断查找的结点是否在合理范围内
return 0;
L *phead1 = head;
L *phead2 = head;
for (int i = 0; i < k; i++)
{
phead1 = phead1->next;
}
while (phead1->next)
{
phead1 = phead1->next;
phead2 = phead2->next;
}
printf("the data of %dTH node from bottom is %d", k, phead2->next->data);
return 1;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!