头插法翻转链表
2016-09-29 11:49
120 查看
头插法翻转链表
#include <stdio.h> #include <stdlib.h> struct Node; typedef struct Node *PtrNode; struct Node { int value; PtrNode Next; }; // 头插法翻转单向链表,把每一个节点插在头结点之后 PtrNode InvertList( PtrNode Head ) { if( Head->Next == NULL ) return Head; PtrNode Cur,Tmp; Cur = Head->Next; Head->Next = NULL; //保证第一个节点不会自己指向自己 while( Cur!= NULL ) { Tmp = Cur->Next; Cur->Next = Head->Next; Head->Next = Cur; Cur = Tmp; } return Head; }