链表翻转O1

链表翻转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;

}

你可能感兴趣的:(链表翻转O1)