这里出错了,你仔细看看这句:while(q!=NULL){ q=q->next;} q->next=p;分析这几句while语句结束了q已经为NULL了,所以你在来在NULL后面插入p,就不对了,要崩溃的!所以把那个while语句的q!=NULL换为q->next!=NULL,这样循环结束q就为最后一个节点,插入操作就不会出现问题了.while(q->next!=NULL){ q=q->next;} q->next=p;