/** ==============================================================* File name: linkedlist_delete_at_position.c* Author: 3360652783@qq.com* Date created: 2026-07-23* Description: Delete a node from singly linked list at specified position (1-based).* Copyright notice: All right Reserved.* ==============================================================*///构建删除单向循环链表中第k个结点的函数
bool DestNode_del(*L,int k){CirLinkList *temp = L->next;if( L->next == L ){ //如果链表为空,则返回falsereturn false;}if( k==1 ){ //删除第一个结点L->next = L->next->next;temp->next = NULL;free(temp);return true;}int j = 1;CirLinkList *P = L->next; //p用于指向当前结点CirLinkList *P_prev = L; //p_prev用于指向当前结点的直接前驱结点while( p->next != L->next ){ //当前结点向后移动找第k个结点p_prev = p;p = p->next;j++;if( j == k ){ //找到第k个结点并删除它p_prev->next = p->next;p->next = NULL;free(p);return true;}}return false; //k值大于结点个数,k值违法,删除失败
}