* ==============================================================
* File name: find_kth_from_end.c
* Author: 3360652783@qq.com
* Date created: 2026-07-23
* Description: Find the kth node from the end in a singly linked list with head node.
* Copyright notice: All right Reserved
* ==============================================================
//构建用于查找链表倒数第k个结点的算法
int search_kth_last(*L,int k){
int j = 0;
LinkList_t *P1 = L;
LinkList_t *p2 = L;
if( L->next ==NULL ){ //如果是空链表则查找失败,返回0
return 0;
}
p1 == L->next;
for(int i=1;i<=k;i++){ //将指针p2指向链表第k个结点
if( p2->next == NULL && j != k ){ //如果结点数不足k个,则查找失败(除去头结点)
return 0;
}
p2 = p2->next;
j++;
}
while( p2->next !=NULL ){ //将p1、p2同步向后移动并保持k个结点的距离,直到p2指向尾结点
p1 = p1->next;
p2 = p2->next;
}
printf("倒数第%d个结点的值为%d",k,p1->data); //打印倒数第k个结点的数据并返回1
return 1;
}