java不用api实现单链表反转(二)
来源:互联网 发布:孙中山民族主义 知乎 编辑:程序博客网 时间:2024/05/16 05:33
这篇博客主要讲述反转链表相关思路。两种方法:时间复杂度均为O(n),空间复杂度均为O(1)
方法一:头插法
头插法不仅可以创建单链表,还可以利用其思路反转链表。首先把头节点拆下,剩下的节点依次遍历,采用头插法,相当于从新建立链表。
package singleLinklistReverse;import singleLinklistReverse.Creat.Lnode;public class Reverse { Lnode p; Lnode r; public void reverseLinklist(Lnode first) { // TODO Auto-generated method stub p=first.next; while(p!=null){ System.out.println(p.data); p=p.next; } p=first.next; first.next=null; while(p!=null){ r=p.next; p.next=first.next; first.next=p; p=r; } p=first.next; while(p!=null){ System.out.println(p.data); p=p.next; } }}结果:123455432112345输入12345,采用头插法建立单链表,54321是当前链表里的数据;12345是反转之后的数据。
方法二:正常思维
该方法就是遍历到某个节点时,将其指向先前的节点,不断遍历知道其为空。要注意的是除头节点外第一个节点指针为空(变为最后一个节点了嘛),要先处理它。然后遍历完毕后要将头节点指针指向最后一个节点。(需要三个指针)
/** * *//** * @author Administrator * */package singleLinklistReverse_2;import singleLinklistReverse_2.Creat.Lnode;public class Reverse_2{ Lnode p,pre,r; public void reverseLinklist(Lnode first) { // TODO Auto-generated method stub p=first.next; while(p!=null){ System.out.println(p.data); p=p.next; } p=first.next;//处理第一个节点 r=p.next; p.next=null; pre=first.next; while(r!=null){ p=r; r=r.next; p.next=pre; pre=p; } first.next=p; p=first.next; while(p!=null){ System.out.println(p.data); p=p.next; } }}结果:123451234554321输入12345,采用尾插法建立单链表,当前链表里数据为12345,反转后数据为54321
完整代码单击此处
0 0
- java不用api实现单链表反转(二)
- java实现字符串反转(二)
- 不用辅助节点,实现单链表的反转。
- 反转单链表(java实现)
- Java实现单链表反转
- Java实现反转单链表
- 单链表反转--Java实现
- Java实现单链表反转
- java实现单链表反转
- java 实现单链表反转
- Java实现单链表反转
- 不用辅助节点,使用_asm{}实现单链表的反转。
- java实现单链表反转(遍历方式)
- java实现单链表反转(递归方式)
- 单链表反转(非递归java实现)
- 单链表的反转java实现
- java 实现单链表的反转
- java 实现单链表的反转
- ios9.0适配
- Linux Is Not Matrix——使用域名访问局域网网站
- EL表达式
- 中国计算机学会CCF推荐国际学术会议和期刊目录-计算机体系结构/并行与分布计算/存储系统
- SQL Server中的Image数据类型的操作
- java不用api实现单链表反转(二)
- 中国计算机学会CCF推荐国际学术会议和期刊目录-计算机网络
- 【ONTAK2010】【BZOJ3551】Peaks加强版
- C语言学习笔记8-函数
- POJ 2135_Farm Tour
- 中国计算机学会CCF推荐国际学术会议和期刊目录-网络与信息安全
- mysql 更改root账户密码 - mysql-5.7.11-osx10.10
- 解决System进程占用80端口
- Android 图片缓存之内存缓存技术LruCache