首页 > 代码库 > 两种方法求单链表逆序

两种方法求单链表逆序

1 递归,很简单

代码:

#include<iostream>  

using namespace std;  

typedef struct node{
	int data;
	struct node * pNext;
}Node ,*pNode;

void createNode(pNode & pHead){
	int temp;
	scanf("%d",&temp);
	pNode p,q;
	bool isFirst = true;
	while(temp){
		if(isFirst){
			p=q=pHead=(pNode)malloc(sizeof(Node));
			pHead->data = http://www.mamicode.com/temp;>
运行结果:


2 不是递归,循环:

#include<iostream>  

using namespace std;  

typedef struct node{
	int data;
	struct node * pNext;
}Node ,*pNode;

void createNode(pNode & pHead){
	int temp;
	scanf("%d",&temp);
	pNode p,q;
	bool isFirst = true;
	while(temp){
		if(isFirst){
			p=q=pHead=(pNode)malloc(sizeof(Node));
			pHead->data = http://www.mamicode.com/temp;>
运行结果: