对于链表的访问遍历,最好是判断表指针是否为NULL来决定是否继续,如:p=head ;while( p != NULL ) //当结点指针不为空时,遍历表,这要求建表时,尾结点的next=NULL!{ printf("num=%d\n", p->num ); p=p->next ;}你自己调整一下自己的代码吧,估计是删除结点时,按个数访问时,访问到了NULL时,你还在操作结点指针。