带头结点的单链表,其长度存放在头结点的数据域中,设计一个算法求倒数第k哥结点的值,并删除该结点

用类C语言描述该单链表,并写出解决该问题的类C语言,谢了
2025-02-28 14:49:50
推荐回答(1个)
回答1:

typedef int DataType;

typedef struct node
{
DataType data;
struct node *next;
} LNode;

ElemType GetValueAt(LNode *head, int k)
{
LNode *p, *q;
int i;
ElemType retValue;
if(k<1 || k>head->data)
{
printf("INDEX ERROR");
return;
}

for(q=head,p=head->next,i=0; p!=NULL && idata-k+1; q=p,p=p->next,i++);

q->next = p->next;

retValue = p->data;
free(p);
}