算法:反转链表 java
方法1 迭代#
public static Node reverseNode(Node head){
// 前一个节点
Node pre = null;
// 当前节点
Node cur = head;
// 如果当前节点不为空
while(cur!=null){
// 存储下一个节点
Node next = cur.next;
// 当前节点的下一个节点指向前一个节点
cur.next = pre;
// 前一个节点变成当前节点
pre = cur;
// 当前节点变成下一个节点
cur = next;
}
return pre;
}
方法2 递归#
public static Node reverseNode(Node head){
if(head == null || head.next == null){
return head;
}
// 递归,保证每个节点都逆序
Node node = reverseNode2(head.next);
// 当前节点的下一个节点的下一个节点,指向当前节点,实现逆序
head.next.next = head;
// 下一个节点置空
head.next = null;
return node;
}
作者:言小溪enncy
出处:https://www.cnblogs.com/enncy/p/16161198.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)