回 帖 发 新 帖 刷新版面

主题:单向链表删除结点出错,求问题

struct student * del(struct student *head,int num)
{    
    struct student *p;
    struct student *p1;
    
    if(head==NULL)
    {
    }
    else
    {
        p=head;
        p1=NULL;
        while(num!=p->num&&p->next!=NULL)
        {
            p1=p;
            p=p->next;
        }
        if(num==p->num)
        {[color=FF0000]
            if(head==p)
                head=p->next;[/color]            
     else
                p1->next=p->next;
        }
        free(p);
        return head;
    }        
}
问题在于,我删除第一个结点的时候。,出问题,删除其他结点时正常,求解

回复列表 (共1个回复)

沙发

我找到错误了,在主调函数中,函数没有传递返回值,汗。。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册