反转链表
来源:互联网 发布:淘宝搜索词指数查询 编辑:程序博客网 时间:2024/06/12 02:57
函数功能:实现链表的反转。
思路:我们在对当前结点作修改时,一定要考虑会不会影响别的结点。如果会,我们就要做出相应的保存。
比如在我们销毁链表时,
Node* p=head;
while(p)
{
Node *q=p->next; //因为如果我们单纯的销毁p时会丢失它下一个结点。
//所以我们要把p->next 保存下来。
delete p;
p=q;
}
下面的函数也是一样的,如果 我们执行pNode->next=pre时,没有在之前 写上pNext=pNode->next; 这样就会丢失信息。先有一个简单的思路,不要去想实现所有的细节,要有大体的思路。
函数实现:
void reserve(Node * &head)
{
if(!head)
return 0;
Node *pre=NULL;
Node *pNode=head;
while(pNode)
{
//我们用两个指针可以完成对链表的反转,
//只是中间需要有一个临时变量。
Node *pNext=pNode->next;
//这个一定要保存下来,因为修改链接后就找不到next了
pNode->next=pre;
pre=pNode;
pNode=pNext;
}
head=pre;
}
0 0
- 链表反转
- 反转链表
- 单向链表反转
- 链表反转:
- 链表的反转
- 链表反转
- 反转单向链表
- 链表反转
- 单向链表反转
- 单向链表反转
- 链表的反转
- 链表反转
- 反转链表
- 链表反转
- 链表反转
- 链表反转
- 链表反转
- 链表的反转
- 自行搭建apache2.2-php5.3.3+mysql+phpmyadmin的php服务器
- Hive之分区(Partitions)和桶(Buckets
- PHP基础知识
- Integer与int的种种比较你知道多少?
- 我的acm之注意事项1
- 反转链表
- 【Data Algorithms_Recipes for Scaling up with Hadoop and Spark】Chapter 9 Recommendation People
- Win7系统CMD进入文件夹目录的命令
- tomcat启动死循环
- jQuery $.post() 方法
- Unity3D研究院之IOS&Android收集Log文件(六十二)
- java的值传递,没有引用传递
- 第三周练习 最大公约数(多个数字)
- 最大连续子序列问题的研究