已在vc++ 6.0中测试过
struct sNode{ /* 定义单链表结点类型 */
elemType data; struct sNode *next; };
typedef struct sNode snode;
snode *reverse(snode *head) /*将链表逆序排列 */
{
snode *p1 = NULL;
snode *p2 = head;
if (!p2)
{
return head;
}
do
{
snode *p3 = p2->next;
p2->next = p1;
p1 = p2;
p2 = p3;
}while(p2->next);
p2->next = p1;
head= p2;
return head;
}