#include<stdio.h>
#include<stdlib.h>
struct ListNode
{
char data;
struct ListNode* Next;
};
struct ListNode* CreateList()
{
char ch;
struct ListNode* head,*r;
struct ListNode *s;
head=NULL;
ch=getchar();
while(ch!=
'\n')
{
s=(
struct ListNode *)
malloc(
sizeof(
struct ListNode));
s->data =ch;
if(head=NULL) head=s;
else r->Next =s;
r=s;
ch=getchar();
}
if(r!=NULL) r->Next =NULL;
return head;
}
int Delete(
struct ListNode * head,
int i)
{
struct ListNode *p=head,*s;
int j=
1;
while(p->Next !=NULL&&j<i-
1)
{
p=p->Next ;
j++;
}
if(j!=i-
1)
{
printf(
"\n删除位置不合理");
return 0;
}
s=p->Next ;
p->Next =p->Next ->Next;
free(s);
return 1;
}
int main()
{
struct ListNode *q,*p;
q=CreateList();
Delete(q,
3);
while(q)
{
printf(
"%c",q->data );
p=q->Next ;
free(q);
q=p;
}
printf(
"\n");
return 0;
}