一次扫面实现链表的逆置
//链表带头结点
node *reverse(node *head)
{
node *p, *q, *t;
p = head->next;//指向第一个节点
t = q = p->next;//指向第二个节点,如果有的话。没有则为空。
p->next = NULL;//第一个节点逆置之后,变成最后一个节点,它的next为空。
//根据t是否为空,实现逆置。
//以下代码实现相邻两个节点之间指向转换。即后一节点指向前一个节点。
while(t != NULL)
{
t = q->next;
q->next = p;
p = q;
q = t;
}
head->next = p;
}