力扣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;
    }
}
相关推荐
wclass-zhengge18 分钟前
数据结构篇(绪论)
java·数据结构·算法
何事驚慌19 分钟前
2024/10/5 数据结构打卡
java·数据结构·算法
结衣结衣.19 分钟前
C++ 类和对象的初步介绍
java·开发语言·数据结构·c++·笔记·学习·算法
大二转专业3 小时前
408算法题leetcode--第24天
考研·算法·leetcode
凭栏落花侧3 小时前
决策树:简单易懂的预测模型
人工智能·算法·决策树·机器学习·信息可视化·数据挖掘·数据分析
hong_zc4 小时前
算法【Java】—— 二叉树的深搜
java·算法
吱吱鼠叔5 小时前
MATLAB计算与建模常见函数:5.曲线拟合
算法·机器学习·matlab
嵌入式AI的盲6 小时前
数组指针和指针数组
数据结构·算法
Indigo_code8 小时前
【数据结构】【顺序表算法】 删除特定值
数据结构·算法
__AtYou__9 小时前
Golang | Leetcode Golang题解之第448题找到所有数组中消失的数字
leetcode·golang·题解