遍历一次反转单链表

遍历单链表一次,反转链表。

#include<iostream>
using namespace std;


typedef struct NODE
{
	NODE(int v)
	{
		value=v;
		next=NULL;
	}
	int value;
	NODE* next;
}Node;


void printList(NODE* head)
{
	cout<<head->value<<" ";
	if(head->next)
		printList(head->next);
	return;
}




NODE* reverseList(NODE* head)
{
	NODE* currentNode=head;
	NODE* lastNode=NULL;
	NODE* nextNode=currentNode->next;
	while(nextNode)
	{
		currentNode->next=lastNode;
		lastNode=currentNode;
		currentNode=nextNode;
		nextNode=nextNode->next;	
	}
	currentNode->next=lastNode;
	
	return currentNode;
}


bool test(NODE* first,NODE* second)
{
	return first==second;
}
void main()
{
	NODE node1(1);
	NODE node2(2);
	node1.next=&node2;
	NODE node3(3);
	node2.next=&node3;
	NODE node4(4);
	node3.next=&node4;
	NODE node5(5);
	node4.next=&node5;


	NODE* inithead=&node1;




	printList(inithead);


	cout<<"开始反转:"<<endl;


	NODE* head=reverseList(inithead);
	if(test(&node4,head->next))
		cout<<"反转测试测功"<<endl;


	printList(head);
}



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值