反向链表LeetCode206
反转单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
解题方法分为递归法和迭代法。
其中递归法比较容易理解;
使用ListNode设置的是节点。
思路:借助三个节点,分别是空指针(作用就是作为一个中间值,没有其他意义),另外两个就是连着的指针,从头开始走。
注意:他们三个位置是连着的
假设三个节点分别为:0,1, 2, 3
文字描述:
先做排除空值的情况,0是空值,1,2,3都是有值的。将1指向0,然后将1的值赋给0,这时候1指向0,断开之前的1指向2,原来的一条链现在形成两个单独的链,然后使这三个节点整体向后移动一个单位
继续刚才的操作,最后全部都会反转过来,不满足循环条件自己停止,这时候0这个空节点在最前面,打印输出即可
代码:
class Solution {
public ListNode reverseList(ListNode head) {
ListNode dummy = new ListNode();
ListNode prev = null;
while( head != null){
ListNode next = head.next;
head.next = prev;
prev = head;
head= next;
}
return prev;
}
}
. . .
相关推荐
热门推荐
JAVA804_List.stream(...
199天前
MyBatis配置文件 —— 相关标签详...
199天前
JAVA实战——视频管理系统&& 搭建m...
196天前
基于OpenCV的自动批卷系统的设计与实...
196天前
UReport2实现自定义路径图片加载
196天前
一. c++ 中的函数模板
196天前
Netty网络编程(五):使用UDP协议
196天前
【Java 基础篇】Java常量、变量以...
196天前
内网穿透工具NATAPP
188天前
redis远程操作常见问题
188天前
最新推荐
最大子段总和
200天前
GPT学术优化 (GPT Academi...
199天前
教你美化苹果电脑,终端不会用,Homeb...
196天前
24.Python文件I/O(二)【异常...
196天前
dubbo+zipkin调用链监控
196天前
【Go 基础篇】Go语言分支结构:掌握 ...
196天前
报错: SSL error: [SSL:...
196天前
Java学习笔记3.6.1 final关...
196天前
算法刷题-Excel表列序号、单词拆分 ...
196天前
wordpress谷歌字体_如何使用Go...
188天前
ads via 小工具