例题2-9:请设计算法,将带有头结点的链表进行就地逆置。
有两种写法,
一种是把链表进行头插法,进行逆置
另一种方法就是把链表设置三变量不断往后指来移动。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
#define LElemType int
using namespace std;
typedef struct LNode{
LElemType data;
struct LNode *next;
LNode ( LElemType Data=0, struct LNode *Next=NULL){
data=Data;
next=Next;
}
}LNode,*LinkList;
void InitLinkList(LinkList &L){
L=new LNode ;
}
void CreateLinkList_Tail(LinkList &L, int n=0){ //尾插法
L=new LNode ;
LinkList pre=L,tmp;
LElemType Data;
for (int i=0;i<n;i++){
printf("请输入第%d个元素的data : \n",i+1);
cin>>Data;
tmp=new LNode (Data);
pre->next=tmp;
pre=tmp;
}
}
void CreateLinkList_Head(LinkList &L, int n=0){ //头插法
L&