谁能解释一下这段程序,关于链表的逆转
程序代码:
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?
自己画了图觉得这个程序完全不着边际。。但是运行起来又是对的。