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

描述

给定一个单链表的头结点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;

    }
}
相关推荐
GoGeekBaird8 分钟前
Agent 时代,你的生产环境,真的敢让它裸奔吗
后端·agent
吴声子夜歌10 分钟前
Guava——事件总线
java·网络·guava
FfHUCisI12 分钟前
Golang 切片扩容策略
开发语言·数据库·golang
IT_陈寒13 分钟前
Redis Pipeline用错竟比不用还慢,这个坑我帮你踩过了
前端·人工智能·后端
en.en..14 分钟前
Ubuntu嵌入式开发 export环境变量
java·开发语言·数据库
gf132111115 分钟前
【python_回复邮件】
android·java·python
攻城有术20 分钟前
专项攻克——重写 Redis 依赖包方法的 6 种实现方式
java·数据库·redis·bootstrap
ynchyong26 分钟前
JavaScript Promise 实战:.then() 与 .catch() 的区别及回调函数封装指南
开发语言·javascript·ecmascript·promise·then
跨境数据猎手28 分钟前
京东开放平台商品详情接口(jd.item_get):签名、缓存与批量采集
java·spring·缓存
名字还没想好☜29 分钟前
Go 1.21 context.WithoutCancel 实战:父 context 取消了,收尾任务还要继续跑
开发语言·后端·golang·go