后端开发刷题 | 反转链表【链表篇】

描述

给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。

数据范围: 0≤n≤1000

要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。

如当输入链表{1,2,3}时,

经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。

以上转换过程如下图所示:

示例1

输入:

复制代码
{1,2,3}

返回值:

复制代码
{3,2,1}

示例2

输入:

复制代码
{}

返回值:

复制代码
{}

说明:

复制代码
空链表则输出空        

思路:

代码:

java 复制代码
import java.util.*;
 

public class Solution {
    /**
     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    public ListNode ReverseList (ListNode head) {
        if(head==null){
            return null;
        }
        ListNode pre=null;
        ListNode next=null;
        while(head!=null){
            next=head.next;
            head.next=pre;
            pre=head;
            head=next;
        }

        return pre;

    }
}
相关推荐
CodeLongBear4 分钟前
从Java后端到Python大模型:我的学习转型与规划
java·python·学习
Miraitowa_cheems9 分钟前
LeetCode算法日记 - Day 94: 最长的斐波那契子序列的长度
java·数据结构·算法·leetcode·深度优先·动态规划
柠檬味拥抱14 分钟前
Java 实现可靠的 WAV 音频拼接:从结构解析到完整可播放的高质量合并方案
后端
Zz_waiting.16 分钟前
统一服务入口-Gateway
java·开发语言·gateway
ada7_16 分钟前
LeetCode(python)——49.字母异位词分组
java·python·leetcode
L_090718 分钟前
【Algorithm】Day-11
c++·算法·leetcode
DyLatte21 分钟前
AI时代的工作和成长
java·后端·程序员
四维碎片36 分钟前
【Qt】大数据量表格刷新优化--只刷新可见区域
开发语言·qt
青春不流名37 分钟前
nginx
java
Java水解42 分钟前
初识MYSQL —— 基本查询
后端·mysql