当前位置: 首页 > news >正文

每日一题——LeetCode206.反转链表

个人主页:白日依山璟

专栏:Java|数据结构与算法|每日一题


文章目录

    • 1. 题目描述
      • 示例1
      • 示例2
      • 示例3
      • 提示
    • 2. 思路
    • 3.代码

1. 题目描述

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

示例1

img

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

输出:[5,4,3,2,1]

示例2

img

输入:head = [1,2]

输出:[2,1]

示例3

输入:head = [ ]

输出:[ ]

提示

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

题目链接

2. 思路

  1. 判断链表是否为空,如果为空直接返回头结点

  2. 判断链表是否为一个元素,如果是直接返回头结点

  3. headnext置为null

  4. 定义两个指针,curcurNextcur 指向头结点的next,表示要反转的元素;curNext指向curnext,表示要反转元素的下一个元素

  5. 使用头插法将要反转的元素插入前一个元素的前面

    image-20231218095202374

3.代码

/*** 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) {if (head == null) { // 链表里一个元素都没有return head;}if (head.next == null) { // 链表里只有一个元素return head;}ListNode cur = head.next; // 要反转的元素head.next = null;while (cur != null) {ListNode curNext = cur.next;// 头插法cur.next = head;head = cur;cur = curNext;}return head;}
}

运行结果:

image-20231218093949377

世界上有三种k,梅花k,方片k,还有任何人不关注我我都会难过的ok
在这里插入图片描述

相关文章:

  • 【微服务核心】Spring Boot
  • aws-sdk-cpp通过bazel构建的S3_client轮子
  • sql_lab之sqli中的堆叠型注入(less-38)
  • 【C++】STL 容器 - list 双向链表容器 ① ( 容器特点 | 容器操作时间复杂度 | 构造函数 )
  • nginx-proxy-manager初次登录502 bad gateway
  • TensorFlow是什么
  • 单例模式你了解嘛?
  • Pytest框架 —— 用例标记和测试执行篇!
  • k8s搭建(一、环境配置与docker安装)
  • 【Python常见数据结构操作-持续更新】
  • 利用Jmeter做接口测试(功能测试)全流程分析!
  • Go在Win10上接收UDP组播数据
  • Y9000P + ubuntu22.04 配置Anaconda+pycharm +pytorch
  • python作业题百度网盘,python作业答案怎么查
  • 汽车零配件装配产线中使用RFID技术和不使用RFID技术的优缺点
  • hexo+github搭建个人博客
  • css系列之关于字体的事
  • dva中组件的懒加载
  • gf框架之分页模块(五) - 自定义分页
  • HTTP 简介
  • Java|序列化异常StreamCorruptedException的解决方法
  • Java读取Properties文件的六种方法
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Mysql优化
  • PHP变量
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • springboot_database项目介绍
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 从重复到重用
  • 第十八天-企业应用架构模式-基本模式
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 区块链技术特点之去中心化特性
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 王永庆:技术创新改变教育未来
  • 我感觉这是史上最牛的防sql注入方法类
  • 无服务器化是企业 IT 架构的未来吗?
  • mysql面试题分组并合并列
  • Spring Batch JSON 支持
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​iOS安全加固方法及实现
  • #define 用法
  • (2)STM32单片机上位机
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (初研) Sentence-embedding fine-tune notebook
  • (二) 初入MySQL 【数据库管理】
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (十)Flink Table API 和 SQL 基本概念
  • (十六)一篇文章学会Java的常用API
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (原創) 物件導向與老子思想 (OO)
  • (转)c++ std::pair 与 std::make