ElemSN * ChangeLink(ElemSN * h) {
if(h == NULL||h->next == NULL) {}//如果链表为空或只有一个结点,无需反转
ElemSN * p, * q;//p为头结点的后继,q为p的后继,以便挂断链
p = h->next;
q = p->next;
h->next = NULL;//断链
while(q) {
p->next = h;//将第一个结点挂在头结点之前
h = p;//挪头指针
p = q;//指针后移
q = q->next;//联动指针
}
p->next = h;//最后一个结点进行挂链
h = p;//在挪头指针
return h; //返回新的头指针
}