链表翻转O1
//
// Created by jianliyang on 17-12-1.
//
#include
#include
using namespacestd;
typedef structNode{
intdata;
Node*next;
}node,*Linklist;
voidcreateLink(Node* link) {
Linklistlk = link;
for(inti=0;i<10;i++) {
Node* new_node =newNode;
new_node->data= i;
new_node->next=nullptr;
lk->next= new_node;
lk = lk->next;
}
}
voidPrinLink(Node* link) {
Linklistlk = link->next;
while(lk) {
printf("%d\n",lk->data);
lk = lk->next;
}
}
voidReverseLink(Node* link) {
Linklistp1;
Linklistp2;
Linklistp;
p = link->next;
p1 = p->next;
p2 = p1->next;
p->next=nullptr;
while(p2->next) {
p1->next= p;
p = p1;
p1 = p2;
p2 = p2->next;
}
p1->next= p;
p2->next= p1;
link->next= p2;
}
intmain() {
Linklistlinklist =newNode;
createLink(linklist);
ReverseLink(linklist);
PrinLink(linklist);
return0;
}
网友评论