leetcode —— 206. 反转链表
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
解法一:迭代法
按顺序遍历链表,对于当前节点,使用临时变量保存其指向的下一个节点,然后将其指向的下一个节点改为其上一个节点,其上一个节点也需要用一个变量进行保存。
### python# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = Noneclass Solution:def reverseList(self, head: ListNode) -> ListNode:node = None # 当前节点的上一个节点cur = head # 当前节点while cur: # 如果当前节点存在temp = cur.next # 用一个临时变量保存当前节点的下一个节点cur.next = node # 更新当前节点的下一个节点node = cur # 用于更新上一个节点的信息cur = temp # 当前节点移动到下一个节点return node
解法二:递归法,假设当前节点后面的所有节点都已经翻转完毕,则对于当前节点需要操作两部分:
- 将当前节点指向的下一个节点指向当前节点;
- 当前节点的下一个节点为None;
# python# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = Noneclass Solution:def reverseList(self, head: ListNode) -> ListNode:if not head or not head.next: # 递归停止条件return headtemp = self.reverseList(head.next) # 当前节点后面的所有节点都已经翻转完毕,返回翻转链表的头结点head.next.next = head # 当前节点的下一个节点指向当前节点head.next = None # 当前节点的下一个节点为None return temp # 返回包括当前节点的翻转链表的头结点
leetcode —— 206. 反转链表相关推荐
- LeetCode 206. 反转链表 Reverse Linked List
5-1 链表,在节点间穿针引线 Reverse Linked List 题目: LeetCode 206. 反转链表 反转一个单链表. 示例: 输入: 1->2->3->4-> ...
- LeetCode 206. 反转链表(Reverse Linked List) 16
206. 反转链表 206. Reverse Linked List 题目描述 反转一个单链表. 每日一算法2019/5/19Day 16LeetCode206. Reverse Linked Lis ...
- LeetCode 206. 反转链表
206. 反转链表 难度 简单 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输 ...
- leetcode - 206. 反转链表
反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代 ...
- 【Java】LeetCode 206 反转链表
题目 :给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 解题思路 : 1.根据以上代码 ,来进行反转链表的操作: 2.最后实现的效果为: 具体思路: 1.首先判断如果链表为空的话, ...
- 26. Leetcode 206. 反转链表 (链表-反转链表)
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表.示例 1:输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2:输入:head = [1,2] 输出:[ ...
- [leetcode] 206.反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输 ...
- LeetCode 206. 反转链表 思考分析
题目 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可 ...
- LeetCode 206. 反转链表 双指针法 辅助结点 递归
题目链接 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 进阶: ...
- LeetCode 206.反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输 ...
最新文章
- jquery.dragsort.js 实现拖拽过程遇到的问题
- python 中的理解x[:]
- vue 如何将参数放到连接上_通过Vue路由传参的两种方式及Vue组件中接收参数的方式...
- java 最大公约数和最小公倍数
- Visio各图形如何一键自动对齐?
- ArcGIS API for JS4.7加载FeatureLayer,点击弹出信息并高亮显示
- 当直播电商用上 AI 实时翻译,歪果仁也能听懂李佳琦
- Webpack4.0 升级配置
- 《Python游戏趣味编程》 第3章 美丽的圆圈画
- 高一计算机教学,高一信息技术教学计划参考
- C语言数字图像处理---1.3 图像直方图
- vuecli3代码压缩混淆
- Cousera--machine learning笔记
- 某乎x-zse-96、x-zst-81最新通杀方案
- QML学习之基本元素Rectangle, Text, Button,Image介绍
- python爬虫十二:初步使用Scrapy框架爬取数据
- 从从协方差的误差椭圆到PCA
- SCI期刊论文发表的优势有哪些
- 大白兔奶糖取法(小米公司测试题)——————华清远见
- 巴西支付Boleto对巴西外贸有多重要!?
热门文章
- ibatis3获得总记录数,同时计算数据分页?
- ICallbackEventHandler不支持二次回调的问题
- CentOS硬盘挂载之fdisk命令进行查看/分区/格式化/挂载
- MacOS系统自带截图快捷键
- Hystrix面试 - 深入 Hystrix 断路器执行原理
- LayoutInflater.inflate()方法两个参数和三个参数
- webpack 生成dist,打zip包
- css overflow: scroll 去滚动条后,低端手机有兼容问题,可以这样
- “已使用指定的进程(“Web Management Service”)连接到远程计算机,但未能验证服务器的证书”的解决方案
- golang中的http server和http client