将带头结点的单链表原地逆置,空间复杂度为O(1)
分析:操作分两步,节点的删除和插入,注意删除节点的保存。
LinkList Reverse_1(linkList &L){
LNode *p = L;
LNode *q = null;
while(p->next!=null){
q = p->next;//要删除的节点
p->next = q->next;//删除
q->next = L->next; //插入到head节点之后
L->next = q;
p = p->next;//遍历,后移
}
p->next = L->next;//最后一个节点
L->next = p;
}