单链表的就地旋转

2023-05-16

小白刚开始跟着陈越老师学习数据结构,遇到单链表的就地旋转苦苦思索没有想明白,经观看多个博客后有所理解,并进行记录。

首先,存在两个链表(一开始看主体部分以为只有一个链表,old-head指第一个 ,new-head指最后一个,后来看函数代码发现并不是)。初始状态如下图。

循环最后再说。先来主体第一句。

使old-head指向的下一个 节点赋值给一个新的结构体节点。变成下图这样。

之后第二句 。

使old-head指向new-head。也就是下图这样。

 使用下图表示的更清晰一些。

之后进行第三个语句。 

将当前旧表头逆转为新表头。如下图。

 之后进行第四个语句。

更新旧表头。如下图。

 这样就成功实现了将old-head转移。

最后看循环语句。

当旧表不为空时一直进行循环,程序将一直执行上述操作,直到旧链表为空,此时成为下图所示状态。

这样就成功实现了单链表的就地反转。

(数据结构小白和csdn新人,如有错误,希望能够指出,谢谢)

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单链表的就地旋转 的相关文章

  • 涨知识!细数银行卡三要素 API 的 N 种验证方法

    引言 银行卡三要素验证 API 是一种基于姓名 身份证号码和银行卡号等三种信息的验证服务 xff0c 主要用于绑定银行卡时校验银行卡是否为该身份信息所有 手机号是否为银行卡绑定手机号 银行卡三要素 API 的验证方法 银行卡三要素 API
  • 常用的热门 API 分享

    手机号码归属地 xff1a 提供三大运营商的手机号码归属地查询 空号检测 xff1a 通过手机号码查询其在网活跃度 xff0c 返回包括空号 停机等状态 手机在网状态 xff1a 支持传入三大运营商的号码 xff0c 查询手机号在网状态 x
  • 通知短信 API 技术细节以及发送流程机制原理解析

    引言 短信是一种简单 直接 高效的通信方式 xff0c 被广泛应用于各个领域 在移动互联网时代 xff0c 短信成为了客户服务 政府通知 公共服务等方面的重要工具 为了更好地利用短信这种通信方式 xff0c 通知短信 API应运而生 短信A
  • vSphere ESXI主机网络分析工具

    1 net stats 该命令可以收集端口统计信息 可以通过net stats h 命令显示所有标志 最常见的是使用 net stats l 来确定所有 VMkernel 接口 vmnic 上行链路和 vNIC 端口的交换机端口号和 MAC
  • 算法中的一些数学问题

    1 欧几里得算法 xff08 辗转相除法 xff09 该算法用来快速计算两个整数的最大公约数 递归算法 xff1a int gcd int a int b if b 61 61 0 return a return gcd b a b 非递归
  • 安装pillow已完成,但仍报错No module named ‘PIL‘

    python 3 6 2 xff0c 安装pillow已完成 xff0c 但仍报错No module named 39 PIL 39 no module named 39 pillow 39 python3 6 我加班还不行吗 的博客 CS
  • 使用汇编语言与C语言实现LED1/LED2/LED3三盏灯点亮

    汇编语言代码段 text global start start LED1点灯LED1 gt PE10 64 1 对LED1进行初始化 RCC AHB4 ENSETR MODER OTYPER OSPEEDR PUPDR 64 2 实现LED
  • linux移动文件夹

    使用命令mv 要移动的文件夹 目标文件夹 假如我要将root下的文件amelia txt移动到opt下的文件夹software中 xff0c 我可以使用命令mv root amelia txt opt software amelia txt
  • docker安装nextcloud,聪明人已经收藏了!

    1 为什么要使用分布式锁 使用分布式锁的目的 xff0c 无外乎就是保证同一时间只有一个客户端可以对共享资源进行操作 1 1举一个很长的例子 系统 A 是一个电商系统 xff0c 目前是一台机器部署 xff0c 系统中有一个用户下订单的接口
  • CCF CSP 序列查询新解

    CCF CSP 序列查询新解 C语言 题目背景 上一题 序列查询 中说道 xff1a A 61 A0 A1 A2 An 是一个由 n 43 1 个 0 N 范围内整数组成的序列 xff0c 满足 0 61 A0 lt A1 lt A2 lt
  • 打开edge,出现错误代码: STATUS_ACCESS_DENIED,解决方法

    问题描述 xff1a 这个问题 xff0c 一般显示edge页面加载失败 xff0c 且电脑右下角出现弹窗 解决办法 xff1a 此时 xff0c 你可以到C盘 xff0c 把Microsoft下的子文件删掉 xff0c 注意最好用dele
  • JS的表达式

    一 原始表达式 1 表达式是js的代码形式 2 原始表达式包含直接量 关键字和变量名 xff1b lt script gt 直接量 100 xff1b 200 2 xff1b 34 hi 34 关键字 True False 变量名 a 函数
  • JS的DOM操作——style的操作

    对于JS操作文档中的元素 xff0c 改变其的样式特征需要用到一个属性 style 常见操作 xff1a 获取的元素点 xff08 xff09 style xx 需要设置或修改的属性 代码演示 xff1a 例如修改div块的背景颜色 lt
  • 学会iframe并用其解决跨域问题

    了解iframe 官方定义为 xff1a iframe是HTML标签 xff0c 作用是文档中的文档 xff0c 或者浮动的框架 FRAME iframe元素会创建包含另外一个文档的内联框架 xff08 即行内框架 xff09 简单理解为
  • Vue中的样式绑定

    我们将样式绑定分为两种 xff1a 一种是通过style绑定 xff0c 一种是通过class绑定 样式绑定适用于 切换效果的实现 xff0c 小规模用style xff0c 大规模用class style绑定样式 这里需要用到v bind
  • 51 汇编语言编程:8个按键控制8个LED

    89C51汇编语言写8个按键控制8个LED 按键接P2口 xff0c LED接P1口 有6按键 xff0c 按下对应LED长亮 xff0c 重复按下 xff0c LED灭 xff1b 有两个特殊按键 xff0c 按下 xff0c 对应LED
  • 常见的排序算法

    今天来学习一下数据结构课程中非常重要的排序算法 我们学习一下一些常见的排序算法 xff0c 如冒泡排序 选择排序 快速排序等 1 冒泡排序 实现思路 xff1a 对未排序的各元素从头到尾依次比较相邻的两个元素大小关系 如果左边的队员大 则两
  • Vue的仓库vuex

    Vue js是一个渐进式的框架 xff0c 是一个分层的设计模式 一共分为五层 xff0c 核心库为基础 xff0c 在这基础上添加组件系统 客户端路由 大规模状态管理和开发环境 其中大数据状态管理对应的技术就是vuex xff0c 它是由
  • vue3.0的setup函数以及解决其内的数据不是响应式数据的问题

    相比于2 0 xff0c vue3 0在新增了一个setup函数 xff0c 我们在setup中可以写数据也可以写方法 xff0c 就像我们以前最开始学习js一样 xff0c 在js文件中写代码 如 xff1a setup let name
  • setup中使用watch

    watch属性监听器的作用在vue3 0中没有改变 xff0c 还是监听值得变化 在vue3 0中 xff0c 仍然支持watch配置项 但是我们要在setup中使用watch得话 xff0c 我们要导入watch的API xff0c 然后

随机推荐

  • 缓存相关知识点

    缓存的优点 1 减少不必要的数据传输 xff0c 节省带宽 2 减轻服务器负担 xff0c 提升网站性能 3 加快客户端网页加载速度 4 用户体验更好 缺点 如果资源发生更改 xff0c 客户端不及时更新会导致用户获取信息滞后 缓存类型 分
  • hook之useMemo

    useMemo 这个hook的作用有点像我们以前学习的计算属性一样 xff0c 它会缓存我们上次的结果 xff0c 只有当特定的属性改变时才从新计算 并且他能 记住 任何类型的值 标准写法 useMemo 61 gt return 34 我
  • hook之useContext

    useContext这个hook xff0c 我们通过翻译就可以大致知道它的用途 xff0c 译为使用上下文 context上下文我们在前面就已经使用过了 xff0c 它是一种用于跨组件之间的传值的技术 我们学过Context xff0c
  • hook之useRoducer

    useReducer用最简单的话来说 xff0c 就是允许我们在函数组件里面像使用redux一样通过reducer和action来管理我们组件状态的变换 我们可以通过useContext配合实现一个函数组件中的redux useReduce
  • linux安装jenkins 【详细教程】

    1 确保jdk已经安装 xff0c 至少是java8以上 xff0c 如果没有安装 xff0c 可以参考https blog csdn net m0 59347746 article details 125681582 csdn share
  • 【笔记】SQL 2

    1 比较运算符 比较运算符用于比较运算 xff0c 判断逻辑是否成立 A operator B 常用的比较运算符有 61 xff08 等于 xff09 61 xff08 不等于 xff09 lt gt xff08 不等于 xff09 lt
  • Qt Creator 3.0.1 部署远程调试

    QT Creator3 0 1 部署远程调试 远程目标板连接配置 从菜单栏选择options gt devices gt add gt generic linux device gt 开始向导 输入目标板的IP与登录用户信息 完成后会自动测
  • 代码源oj--数据结构初级:105 字符串处理1

    给定一个长度为n的字符串s xff0c 字符串由小写字母a z组成 小明来对这个字符串进行操作 xff0c 他会从头到尾检查这个字符串 xff0c 如果发现有两个相同的字母并排在一起 xff0c 就会把这两个字符都删掉 小明会重复这个操作
  • Python 视频转字符画 - 进阶

    昨晚我在网上看到了别人做的视频转字符动画 xff0c 觉得很厉害 xff0c 我于是也打算玩玩 今天中午花时间实现了这样一个小玩意 顺便把过程记录在这里 1 源视频 xff1a https docs qq com doc DU3pabWFh
  • Python教程 - Tkinter布局

    之前的Tkinter教程中 xff0c 我们创建的控件默认都是从上到下依次排列的 实际上 xff0c 我们可以完全控制每个控件的位置 Tkinter主要提供pack grid place三种布局方法 pack布局 pack布局 xff0c
  • java实现字符串中的字母排序

    String str 61 34 chenughonghuiaikuangwantong1314 34 System out println 34 原字符串 xff1a 34 43 str char chars 61 str toCharA
  • 这个 Python 游戏库,打开就能玩一天

    会 Python 的小伙伴 xff0c 选择用 Python 让 大风车 吱呦呦地转 xff01 还有的小伙伴 xff0c 选择用 Turtle 库绘制童年的卡通人物 我们其实还可以选择用 Python 开发小游戏 xff0c 回忆童年的美
  • k8s集群中部署rancher v2.7高可用集群

    一 xff0c 什么是 Rancher xff1f 官网地址 xff1a 什么是 Rancher xff1f Rancher Manager Rancher 是一个 Kubernetes 管理工具 xff0c 让你能在任何地方和任何提供商上
  • [Ubuntu] 虚拟机忘记登录密码的解决方案

    前言 xff1a 此文章仅作为本人在学习过程中的学习笔记 xff0c 同时也为记录此解决方案亲测有效 特别注明 xff1a 解决方案也是借鉴前人的成就 Ubuntu 虚拟机太久没登录 xff0c 忘记密码了 多次尝试无果后 xff0c 只好
  • shell脚本中常用的基础命令

    Shell xff08 Shell Script xff09 脚本又称Shell命令稿 程序化脚本 xff0c 是一种计算机程序使用的文本文件 xff0c 其内容由一连串的shell命令组成 xff0c 经由Unix Shell直译内容后运
  • 常用DOS命令和Path环境变量的配置

    常用DOS命令和Path环境变量的配置 1 常用DOS命令1 1 打开命令提示符窗口1 2 常用DOS命令 2 Path环境变量的配置2 1 为什么要配置Path环境变量2 2 配置流程2 3 检测Path环境变量配置是否成功 1 常用DO
  • Python 打包工具 Nuitka 入门指南

    Python 打包工具 Nuitka 入门指南 起因 由于最近用Python写了一个跟目标检测相关的小工具 xff0c 如果直接分发代码文件一来是不够优雅 xff0c 二来是对非计算机领域的用户来说不够友好 xff0c 因此我萌生了给小工具
  • 彻底关闭windows Update服务

    第一步 xff1a windows services 服务管理中关闭 Windows Update 服务 第二步 xff1a 关闭任务计划中的WindowsUpdate 第三步 xff1a 修改windows update 可执行程序的注册
  • Linux常用命令——常用网络命令

    一 配置IP地址 1 配置IP地址 IP地址是计算机在互联网中唯一的地址编码 每台计算机如果需要接入网络和其他计算机进行数据通信 xff0c 就必须配置唯一的公网IP地址 配置IP地址有两种方法 xff1a 1 xff09 setup工具
  • 单链表的就地旋转

    小白刚开始跟着陈越老师学习数据结构 xff0c 遇到单链表的就地旋转苦苦思索没有想明白 xff0c 经观看多个博客后有所理解 xff0c 并进行记录 首先 xff0c 存在两个链表 xff08 一开始看主体部分以为只有一个链表 xff0c