#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node *next;
};
typedef struct node NODE;
/* 创建单链表 */
NODE *creatlist()
{
NODE *head, *p, *s;
int num;
head
= (NODE
*)malloc(sizeof(NODE
)); p = head;
while (num != 0)
{
s
= (NODE
*)malloc(sizeof(NODE
));
s->data = num;
p->next = s;
p = s;
}
p->next = NULL;
return head;
}
/* 删除第3个结点 */
void deleteNode(NODE *head, int i)
{
NODE *p, *s;
int j = 0;
p = head;
/* 找到待删除结点的前一个结点 */
while (p->next != NULL && j < i - 1)
{
p = p->next;
j++;
}
if (p->next == NULL || j != i - 1)
{
}
else
{
s = p->next;
p->next = s->next;
}
}
int main()
{
NODE *q, *HEAD;
int i;
HEAD = creatlist();
q = HEAD->next;
while (q != NULL)
{
q = q->next;
}
deleteNode(HEAD, i);
q = HEAD->next;
while (q != NULL)
{
q = q->next;
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0cnVjdCBub2RlCnsKICAgIGludCBkYXRhOwogICAgc3RydWN0IG5vZGUgKm5leHQ7Cn07Cgp0eXBlZGVmIHN0cnVjdCBub2RlIE5PREU7CgovKiDliJvlu7rljZXpk77ooaggKi8KTk9ERSAqY3JlYXRsaXN0KCkKewogICAgTk9ERSAqaGVhZCwgKnAsICpzOwogICAgaW50IG51bTsKCiAgICBoZWFkID0gKE5PREUgKiltYWxsb2Moc2l6ZW9mKE5PREUpKTsKICAgIHAgPSBoZWFkOwoKICAgIHByaW50ZigiMSAyIDMgNCA1IDYgMO+8mlxuIik7CiAgICBzY2FuZigiJWQiLCAmbnVtKTsKCiAgICB3aGlsZSAobnVtICE9IDApCiAgICB7CiAgICAgICAgcyA9IChOT0RFICopbWFsbG9jKHNpemVvZihOT0RFKSk7CgogICAgICAgIHMtPmRhdGEgPSBudW07CiAgICAgICAgcC0+bmV4dCA9IHM7CiAgICAgICAgcCA9IHM7CgogICAgICAgIHNjYW5mKCIlZCIsICZudW0pOwogICAgfQoKICAgIHAtPm5leHQgPSBOVUxMOwoKICAgIHJldHVybiBoZWFkOwp9CgovKiDliKDpmaTnrKwz5Liq57uT54K5ICovCnZvaWQgZGVsZXRlTm9kZShOT0RFICpoZWFkLCBpbnQgaSkKewogICAgTk9ERSAqcCwgKnM7CiAgICBpbnQgaiA9IDA7CgogICAgcCA9IGhlYWQ7CgogICAgLyog5om+5Yiw5b6F5Yig6Zmk57uT54K555qE5YmN5LiA5Liq57uT54K5ICovCiAgICB3aGlsZSAocC0+bmV4dCAhPSBOVUxMICYmIGogPCBpIC0gMSkKICAgIHsKICAgICAgICBwID0gcC0+bmV4dDsKICAgICAgICBqKys7CiAgICB9CgogICAgaWYgKHAtPm5leHQgPT0gTlVMTCB8fCBqICE9IGkgLSAxKQogICAgewogICAgICAgIHByaW50Zigi5Yig6Zmk5L2N572u6Z2e5rOV77yBXG4iKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBzID0gcC0+bmV4dDsKICAgICAgICBwLT5uZXh0ID0gcy0+bmV4dDsKCiAgICAgICAgZnJlZShzKTsKICAgIH0KfQoKaW50IG1haW4oKQp7CiAgICBOT0RFICpxLCAqSEVBRDsKICAgIGludCBpOwoKICAgIEhFQUQgPSBjcmVhdGxpc3QoKTsKCiAgICBwcmludGYoIjEgMiAzIDQgNSA277yaXG4iKTsKCiAgICBxID0gSEVBRC0+bmV4dDsKCiAgICB3aGlsZSAocSAhPSBOVUxMKQogICAgewogICAgICAgIHByaW50ZigiJWRcdCIsIHEtPmRhdGEpOwogICAgICAgIHEgPSBxLT5uZXh0OwogICAgfQoKICAgIHByaW50ZigiXG4iKTsKCiAgICBwcmludGYoIjMiKTsKICAgIHNjYW5mKCIlZCIsICZpKTsKCiAgICBkZWxldGVOb2RlKEhFQUQsIGkpOwoKICAgIHByaW50ZigiMSAyIDMgNCA1IDbvvJpcbiIpOwoKICAgIHEgPSBIRUFELT5uZXh0OwoKICAgIHdoaWxlIChxICE9IE5VTEwpCiAgICB7CiAgICAgICAgcHJpbnRmKCIlZFx0IiwgcS0+ZGF0YSk7CiAgICAgICAgcSA9IHEtPm5leHQ7CiAgICB9CgogICAgcHJpbnRmKCJcbiIpOwoKICAgIHJldHVybiAwOwp9