力扣206

题目

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例 1:

复制代码
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例 2:

复制代码
输入:head = [1,2]
输出:[2,1]

示例 3:

复制代码
输入:head = []
输出:[]

思路

采用迭代的方法,建立一个新的链表,用来保存已经倒序的链表,类似于栈,不断更新当前的节点

解决方法

curr表示当前的节点

prev表示以及倒序完的首节点

next,用来保存当前节点的下一个节点,防止节点丢失

开始循环判断是否为空

next=curr.next用来保存下一个节点

curr.next=prev将当前节点接到prev即以及倒序完的节点,作为首位

prev=curr 更新首节点

curr=next 更新当前节点

代码

java 复制代码
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode curr=head;
        ListNode prev=null;
        while(curr!=null){
            ListNode next=curr.next;
            curr.next=prev;
            prev=curr;
            curr=next;
        }
        return prev;
    }
}
相关推荐
故事和你919 小时前
洛谷-【动态规划2】线性状态动态规划4
开发语言·数据结构·c++·算法·动态规划·图论
不吃土豆的马铃薯9 小时前
Socket 网络编程实战教程
linux·服务器·开发语言·网络·c++·算法
weixin_4684668510 小时前
图像滤波算法新手实战指南
图像处理·人工智能·算法·计算机视觉·ai·机器视觉·滤波
Ulyanov10 小时前
深入QML-Python通信 构建响应式交互界面的桥梁设计:QML+PySide6现代开发入门(五)
开发语言·python·算法·交互·qml·系统仿真
重生之我是Java开发战士10 小时前
【贪心算法】加油站,单调递增的数字,坏了的计算器,合并区间,用最少数量的箭引爆气球
算法·贪心算法
小欣加油10 小时前
leetcode 3300 替换为数位和后的最小元素
数据结构·c++·算法·leetcode
晚风予卿云月10 小时前
【枚举】普通枚举
数据结构·c++·算法·竞赛·算法随笔
IronMurphy10 小时前
【算法五十三】1143. 最长公共子序列
算法
被AI抢饭碗的人10 小时前
算法:动态规划
算法
妄想出头的工业炼药师10 小时前
激光雷达点云退化多地图会话
算法·开源