谁能解释一下这段程序,关于链表的逆转
程序代码:void ReverseList(LinkList H)
/*逆置链表*/
{
ListNode *p,*q;
p=H->next; /*p指向链表的第一个结点*/
H->next=NULL;
while(p) /*利用头插法将结点依次插入到链表的头部*/
{
q=p->next;
p->next=H->next;
H->next=p;
p=q;
}
}如果之前让头结点断裂H->next=NULL,那么接下来p->next=H->next不就=NULL?
自己画了图觉得这个程序完全不着边际。。但是运行起来又是对的。









