当前位置: 首页 > 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
在这里插入图片描述

相关文章:

  • Python圣诞树代码
  • 【UML】第12篇 序列图(1/2)——基本概念和构成
  • [数据结构]树与二叉树的性质
  • ------- 计算机网络基础
  • 思福迪运维安全管理系统 test_qrcode_b RCE漏洞复现
  • 【FPGA】Verilog 实践:优先级编码器 | Priority encoder
  • 一个实用的Wrapper类,解决mfc使用sqlite3时的中文乱码问题
  • W5500-EVB-Pico评估版介绍
  • 二、C#基础语法( 异常处理)
  • 使用JAVA Zookeeper构建分布式键值存储
  • STM32移植LVGL图形库
  • ❀My排序算法学习之选择排序❀
  • 【Linux】线程池设计/单例模式/STL、智能指针与线程安全/读者写者问题
  • PostgreSQL10数据库源码安装及plpython2u、uuid-ossp插件安装
  • 1、TCP 和 UDP 区别? 2、TCP/IP 协议涉及哪几层架构? 3、描述下 TCP 连接 4 次挥手的过程?为什么要 4 次挥手?
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CentOS 7 修改主机名
  • CSS实用技巧干货
  • download使用浅析
  • github从入门到放弃(1)
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • PAT A1092
  • React 快速上手 - 07 前端路由 react-router
  • ReactNativeweexDeviceOne对比
  • SpriteKit 技巧之添加背景图片
  • SQLServer之索引简介
  • vue--为什么data属性必须是一个函数
  • 编写高质量JavaScript代码之并发
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 搞机器学习要哪些技能
  • 如何合理的规划jvm性能调优
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 思考 CSS 架构
  • 算法-插入排序
  • 线性表及其算法(java实现)
  • 详解移动APP与web APP的区别
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • - 转 Ext2.0 form使用实例
  • "无招胜有招"nbsp;史上最全的互…
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (黑马C++)L06 重载与继承
  • (一)Java算法:二分查找
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .“空心村”成因分析及解决对策122344
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET Micro Framework初体验
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET开源快速、强大、免费的电子表格组件
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • []FET-430SIM508 研究日志 11.3.31
  • [AX]AX2012 SSRS报表Drill through action
  • [C#]扩展方法