leetcode206:反转链表
package com.mxnet;
import java.util.Stack;
public class Solution206 {
public static void main(String[] args) {
}
/**
* 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
* @param head
* @return
* 思路:
* 1. 因为要完成链表反转,则只需改变链表的链接顺序
* 2. 即将当前节点作为下一个节点的下一个节点
* 3. 保存当前节点的前驱节点和后继节点,完成链表的转换
* 4. 遍历链表完成反转
*/
public ListNode reverseList(ListNode head) {
//记录前驱节点
ListNode prev = null;
//使用辅助指针指向头节点
ListNode cur = head;
//循环遍历链表所有节点,完成反转
while (cur != null){
//记录当前节点的下一个节点
ListNode next = cur.next;
//使当前节点指向它的前驱节点
cur.next = prev;
//在进行下一次循环时 使当前节点成为下一个节点的前驱节点
prev = cur;
//移动当前节点
cur = next;
}
return prev;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-09-05 Leetcode103. 二叉树的锯齿形层序遍历