博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
逆转链表
阅读量:6548 次
发布时间:2019-06-24

本文共 588 字,大约阅读时间需要 1 分钟。

正确写法:

Node* reverse(Node* head){	Node* current = head;	Node* reversList = null;		while(current)	{	       /*将当前节点取出原链表迅速改变current(即current取出!!!注                意这是 一个赋值操作,赋值完后current改变了,p还是没变!!!)*/		Node *p = current;			current = current->next; 		p->next = reversList;				reverseList = p;	}	return reverseList;}

注意指针赋值!指针操作~~~~

错误写法:

   Node *p = current;

        //赋值操作,p->next 和current->next是同一
        //个值。这一步就改变了current->next,出错!!!
        p->next = reversList;
        reverseList = p;
        current = current->next;

这样p->next = reverlist已经把后面的改了,current找不到原来的链了

current = current->next;事实上,当原来的链不再用到时,要迅速改变current的值!!!!

转载地址:http://airdo.baihongyu.com/

你可能感兴趣的文章
Oracle使用PLSQL连接时,导入导出问题
查看>>
Servlet Demo
查看>>
Struts2中的<s:action>标签
查看>>
Java中取某一个范围的随机数
查看>>
一条复杂SQL实现思路
查看>>
我的友情链接
查看>>
android app 退出时提示确认
查看>>
win10 配置
查看>>
java 编译100个范例
查看>>
Session Cookie ServletContext
查看>>
单点登录SSO
查看>>
遇见有的软件开启后画面模糊怎么解决
查看>>
好系统重装助手教你怎么识别固态硬盘还是机械硬盘
查看>>
170. js中获取随机数 (记录一下)
查看>>
深入浅出爬虫之道: Python、Golang与GraphQuery的对比
查看>>
DHCP配置
查看>>
MySQL性能测试(二)——Ubuntu 14.4.02, MySQL 5.6.25, sysbench 4.8
查看>>
我的友情链接
查看>>
网络安全十大注意
查看>>
cisco虚拟局域网VLAN路由----待补充
查看>>