2 qq 34378013 qq_34378013 于 2016.03.31 17:35 提问

不带头结点的链表问题
 #include<stdio.h>
#include<stdlib.h>
typedef struct linknode
{
    int data;
    struct linknode *next;
} node;

node *Creat()
{
    node *head,*p,*s;
    int x,cycle=1;
    printf("Please input total number of data item (press 0 end):");
    head=(node* )malloc(sizeof(node));
    head->next=NULL;
    p=head;
    while (cycle) {
        scanf("%d",&x);
        if (x!=0) {
            s=(node*)malloc(sizeof(node));
            s->data=x;
            p->next=s;
            p=s;
        }
        else cycle=0;
    }
    p->next=NULL;
    p=head;
    head=head->next;
    free(p);
    return head;
}



void Delet(node *head,int i)
{
    int n=1;
    node *p;
    if (i==1){
        p=head;
        head=head->next;
        free(p);
    }
    else{
        while(head!=NULL){
        if(i==n+1) break;
            head=head->next;
            n++;
        }
        head->next=head->next->next;
    }
}

int main(void)
{
    int a;
    node *head,*p=NULL;
    head=Creat();
    printf("输入值a  \n");
    scanf("%d",&a);
        Delet(head,a);
    for(p=head;p!=NULL;p=p->next) printf("%d",p->data);
    return 0;
}

在删除不带头结点的链表的时候,我的这个程序的第一个数,就是头节点怎么删除,求大神帮忙修改一下我的程序。太感谢了。

2个回答

CSDNXIAON
CSDNXIAON   2016.03.31 17:42

带头结点的链表
不带头结点的链表实现
C++不带头结点的单循环链表解决约瑟夫环问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

qq423399099
qq423399099   Ds   Rxr 2016.03.31 19:51

楼主要输入的值a代表的是第几个节点还是指节点里存的值?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!