每日一题 --- 反转链表[力扣][Go]

反转链表

题目:206. 反转链表

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

示例 1:

img

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例 2:

img

输入:head = [1,2]
输出:[2,1]

示例 3:

输入:head = []
输出:[]

提示:

  • 链表中节点的数目范围是 [0, 5000]
  • -5000 <= Node.val <= 5000

方法一:

创建一个新的空链表,然后扫描老链表节点,并将扫描到的结点使用头插法插入空链表,这样就得到了一个反转的链表。

func reverseList(head *ListNode) *ListNode {
   var newListNode *ListNode
   cur := head
   for cur != nil {
      newListNode = &ListNode{Val: cur.Val, Next: newListNode}
      cur = cur.Next
   }
   return newListNode
}

一个for循环,时间复杂度O(n),用了额外的链表长度空间,空间复杂度O(n)。

方法二:

能不能让时间复杂度降为O(1)呢?反转链表不就是反转指针嘛,只要让指针指对了就行了。具体请看:[代码随想录](代码随想录 (programmercarl.com))
具体步骤如图:
在这里插入图片描述

func reverseList(head *ListNode) *ListNode {
   cur := head
   var pre *ListNode
   for cur != nil {
      temp := cur.Next
      cur.Next = pre
      pre = cur
      cur = temp
   }
   return pre
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/484703.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AtCoder Regular Contest 174 A~E

A.A Multiply&#xff08;贪心&#xff09; 题意&#xff1a; 给你一个长度为 N N N 、 A ( A 1 , A 2 , … , A N ) A(A_1,A_2,\dots,A_N) A(A1​,A2​,…,AN​) 和整数 C C C 的整数序列。 在进行最多一次以下操作后&#xff0c;求 A A A 中元素的最大可能和&#xff…

为什么安装了4GB的内存条,却显示只有3.8GB?

朋友们&#xff0c;对于计算机而言&#xff0c;其基本包含三部分。 第一&#xff0c;CPU; 第二&#xff0c;存储器&#xff08;内存、物理内存&#xff09;&#xff1b;第三&#xff0c;输入设备、输出设备。 32位的地址总线&#xff0c;其地址范围就是 CPU 访问内存&#xf…

小车倒立摆系统极点配置,LQR闭环控制

在之前直流电机控制仿真里有讲过状态控制的基本架构&#xff0c;有兴趣的同学可以再回去看看&#xff0c;链接如下好玩的直流电机调速实验、PID、极点配置、LQR、观测器&#xff1b;不讲大道理_lqr控制器观测器-CSDN博客 在专栏的前三篇文章 小车倒立摆物理建模与simulink仿真…

【消息队列开发】 设计网络通信协议

文章目录 &#x1f343;前言&#x1f38d;明确需求&#x1f340;设计应用层协议&#x1f384;定义 Request / Response&#x1f334;定义参数父类与返回值父类&#x1f332;定义其他参数类&#x1f333;定义其他返回类⭕总结 &#x1f343;前言 本次开发任务 设计网络通信协议…

带3090显卡的Linux服务器上部署SDWebui

背景 一直在研究文生图&#xff0c;之前一直是用原始模型和diffuser跑SD模型&#xff0c;近来看到不少比较博主在用 SDWebui&#xff0c;于是想着在Linux服务器上部署体验一下&#xff0c;谁知道并没有想象的那么顺利&#xff0c;还是踩了不少坑。记录一下过程&#xff0c;也许…

基于springboot+vue的高校专业实习管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

数据结构面试常见问题之串的模式匹配(KMP算法)系列-大师改进实现以及原理

&#x1f600;前言 KMP算法是一种改进的字符串匹配算法&#xff0c;由D.E.Knuth&#xff0c;J.H.Morris和V.R.Pratt提出的&#xff0c;因此人们称它为克努特—莫里斯—普拉特操作&#xff08;简称KMP算法&#xff09;。KMP算法的核心是利用匹配失败后的信息&#xff0c;尽量减少…

CentOS7配置静态ip

CentOS7进入root账户,点击右上角 点击有线设置 点击有线设置,查看目前ip地址,记住,点击ipv4 点击手动,在下面的地址写你自己想要的IP地址,注意只有最后的100可以改,146改成你自己的网段,网关和DNS最后一位都写2就行了 注意DNS一定要写,要不然让他自动找不到,会断网 在这个位置…

云计算安全分析

目录 一、概述 二、《云计算服务安全指南》的云安全风险分析 2.1 客户对数据和业务系统的控制能力减弱 2.2 客户与云服务商之间的责任难以界定 2.3 可能产生司法管辖权问题 2.4 数据所有权保障面临风险 2.5 数据保护更加困难 2.6 数据残留 2.7 容易产生对云服务商的过度…

手撕算法-删除链表的倒数第 N 个结点

描述 思路 快慢指针&#xff0c;快指针先走N步&#xff0c;走不够N步返回空。慢指针和快指针一起走&#xff0c;当快指针到达终点&#xff0c;即快指针为null时&#xff0c;慢指针到达倒数第N个节点。因为要删除倒数第N个&#xff0c;所以要记录之前的节点pre&#xff0c;假设…

JavaScript原型、原型对象、原型链系列详解(二)

(二)、JavaScript原型对象 原型对象 JavaScript 的原型机制是一种非常强大和灵活的面向对象编程概念&#xff0c;它使用一个对象作为另一个对象的模板&#xff0c;从而实现继承。在 JavaScript 中&#xff0c;每个对象都有一个原型对象&#xff0c;它定义了该对象的属性和方法&…

力扣100热题[哈希]:最长连续序列

原题&#xff1a;128. 最长连续序列 题解&#xff1a; 官方题解&#xff1a;. - 力扣&#xff08;LeetCode&#xff09;题解&#xff0c;最长连续序列 &#xff1a;哈希表 官方解题思路是先去重&#xff0c;然后判断模板长度的数值是否存在&#xff0c;存在就刷新&#xff0c…

【4XVR】win11局域网共享3D影片给quest3

准备工作 首先要有一个路由器&#xff0c;使电脑和quest3处于同一个局域网下 一.创建一个离线账户 打开设置选择账户 添加账户 二.共享文件 选择要共享的文件夹&#xff0c;右键打开属性&#xff0c;点击共享 选择刚刚创建的用户&#xff0c;点击共享即可 三.使用quest观影 …

AttributeError: ‘_MSDataLoaderIter‘ object has no attribute ‘_put_indices‘

问题描述 复现代码过程中遇到错误&#xff1a;AttributeError: _MSDataLoaderIter object has no attribute _put_indices 解决方案 出错的原因是代码中使用了不存在的属性"_put_indices"。这个错误可能与你使用的版本不兼容有关。在pytorch1.x版本中&#xff0c;&q…

Unity基础框架

公共模块 单例基类 如果有很多个这样的单例模式对象,创建他们时都要重复的写单例模式代码。那么能不能利用泛型来减少这部分重复的工作量呢。 单例模式基类,最简单的写法 继承MonoBehaviour的单例基类 所以需要做一些改进 获取单例时如果为空,创建一个名字一样的物体,挂…

力扣HOT100 - 283. 移动零

解题思路&#xff1a; 双指针 指针 i 用于寻找不为零的位置 指针 j 用于寻找为零的位置 不为零时&#xff0c;自己与自己交换&#xff0c;i 和 j 同时向下一个位置移动 为零时&#xff0c;nums[ i ]与nums[ j ]交换&#xff0c;使零向后移动 class Solution {public void…

YOLOv8 | 注意力机制 | 添加ResBlock_CBAM注意力机制——论文必备(全网独家)

⭐欢迎大家订阅我的专栏一起学习⭐ 🚀🚀🚀订阅专栏,更新及时查看不迷路🚀🚀🚀 YOLOv5涨点专栏:http://t.csdnimg.cn/96Cv5 YOLOv8涨点专栏:http://t.csdnimg.cn/hmCtL YOLOv7专栏:http://t.csdnimg.cn/lA95R 💡魔改网络、复现论文、优化创新💡

python学习9:python的代码中的数据类型转换

python中数据类型的转换 1.为什么需要转换类型呢&#xff1f; 数据类型之间&#xff0c;在特定的场景下&#xff0c;是可以相互转换的&#xff0c;如字符串转数字&#xff0c;数字转字符串等&#xff1b;数据类型转换&#xff0c;在以后是我们经常使用到的功能&#xff0c;例如…

js工具方法记录

校验数字是否有效的11位手机号 function isValidPhoneNum(value: string) {return /^[1][3,4,5,6,7,8,9][0-9]{9}$/.test(value) }手机号中间4位掩码 function maskPhoneNum(phone: string, space false) {if (!phone) {return }const reg /(\d{3})\d{4}(\d{4})/return pho…
最新文章