带头结点代码,单链表逆置,辅助空间为O(1)
总结
将头结点和之后结点断开,头插法插入。断开后,无头结点的链表,需要p,r两个指针(p为工作指针,r=p->next防止断链)
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <iostream> using namespace std; typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList;
LinkList Reverse_l(LinkList &L){ LNode *p,*r; p=L->next; L->next=NULL; while(p!=NULL){ r=p->next; p->next=L->next; L->next=p; p=r; } return L; }
|