java实现单链表倒转的方法
作者:fb0122 时间:2023-04-04 04:44:01
java中有关单链表反转的方法有很多种,这里记录一种并附上详细步骤:
代码如下
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode reverseList(ListNode head) {
ListNode pre;
ListNode temp;
pre = head; // 前驱节点
ListNode cur = head.next //当前节点
while(cur != null && cur.next != null){
temp = cur.next; //(1)
cur.next = pre; //(2)
pre = cur; //(3)
cur = temp; //(4)
}
head.next = null //原头节点,反转后尾节点
return pre; //原尾节点 反转后头节点
}
}
主要的操作是在while循环中,下面画图解释一下是如何实现单链表倒转的:
首先java中没有指针的概念,但是可以看到ListNode中的next属性其实就代表指向下一个节点的“指针”,因此可以这样来理解:
1、原单链表:
假设单链表有三个元素[1,2,3],0为上述的头对象
2、执行(1)、(2)后:
cur.next指向了n.next:
3、执行(3):
4、执行(4):
第一次循环结束,第一次循环后的单链表如上图所示。
cur != null && cur.next != null,因此执行第二次循环:
5、第二次执行(1),(2):
6、第二次执行(3):
7、第二次执行(4):
cur.next == null 推出循环
以上,实现单链表的倒转。
来源:https://blog.csdn.net/qq_26033289/article/details/51804710
标签:java,单链表,倒转
0
投稿
猜你喜欢
详解Kotlin Android开发中的环境配置
2022-06-25 10:42:17
java模拟TCP通信实现客户端上传文件到服务器端
2023-11-26 10:14:49
无法从 int? 转换为 int 运行时出现错误
2022-01-02 08:26:11
Java 数据结构与算法系列精讲之二叉堆
2022-05-14 06:31:15
Unity实现换装系统
2021-08-11 15:27:15
解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题
2021-08-06 20:52:42
java输入数字,输出倒序的实例
2023-06-20 01:59:44
Java日期操作方法工具类实例【包含日期比较大小,相加减,判断,验证,获取年份等】
2023-11-25 12:14:40
Spring Boot静态资源路径的配置与修改详解
2022-09-15 19:27:08
Android实现文件上传和下载倒计时功能的圆形进度条
2023-12-08 16:45:35
Android TabWidget底部显示效果
2022-08-05 10:54:40
Android实现背景可滑动登录界面 (不压缩背景弹出键盘)
2023-11-14 11:09:07
C++如何通过ostringstream实现任意类型转string
2022-06-27 16:23:06
SpringCloud入门实验环境搭建
2022-11-17 10:21:14
Java Swing实现窗体添加背景图片的2种方法详解
2021-10-26 19:01:18
Android 文件存储系统原理
2021-12-24 05:10:57
Android实现本地Service方法控制音乐播放
2021-12-16 07:22:31
Android实现加载圈
2023-03-27 16:44:34
Java 使用 HttpClient 发送 GET请求和 POST请求
2023-07-23 07:56:13
android自由改变Dialog窗口位置的方法
2021-09-13 04:19:04