反转一个单链表。

示例:

输入: 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

解法二:递归法,假设当前节点后面的所有节点都已经翻转完毕,则对于当前节点需要操作两部分:

  1. 将当前节点指向的下一个节点指向当前节点;
  2. 当前节点的下一个节点为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. 反转链表相关推荐

  1. LeetCode 206. 反转链表 Reverse Linked List

    5-1 链表,在节点间穿针引线 Reverse Linked List 题目: LeetCode 206. 反转链表 反转一个单链表. 示例: 输入: 1->2->3->4-> ...

  2. LeetCode 206. 反转链表(Reverse Linked List) 16

    206. 反转链表 206. Reverse Linked List 题目描述 反转一个单链表. 每日一算法2019/5/19Day 16LeetCode206. Reverse Linked Lis ...

  3. LeetCode 206. 反转链表

    206. 反转链表 难度 简单 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输 ...

  4. leetcode - 206. 反转链表

    反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代 ...

  5. 【Java】LeetCode 206 反转链表

    题目 :给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 解题思路 : 1.根据以上代码 ,来进行反转链表的操作: 2.最后实现的效果为: 具体思路: 1.首先判断如果链表为空的话, ...

  6. 26. Leetcode 206. 反转链表 (链表-反转链表)

    给你单链表的头节点 head ,请你反转链表,并返回反转后的链表.示例 1:输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2:输入:head = [1,2] 输出:[ ...

  7. [leetcode] 206.反转链表

    给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输 ...

  8. LeetCode 206. 反转链表 思考分析

    题目 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可 ...

  9. LeetCode 206. 反转链表 双指针法 辅助结点 递归

    题目链接 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 进阶: ...

  10. LeetCode 206.反转链表

    给你单链表的头节点 head ,请你反转链表,并返回反转后的链表. 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输 ...

最新文章

  1. jquery.dragsort.js 实现拖拽过程遇到的问题
  2. python 中的理解x[:]
  3. vue 如何将参数放到连接上_通过Vue路由传参的两种方式及Vue组件中接收参数的方式...
  4. java 最大公约数和最小公倍数
  5. Visio各图形如何一键自动对齐?
  6. ArcGIS API for JS4.7加载FeatureLayer,点击弹出信息并高亮显示
  7. 当直播电商用上 AI 实时翻译,歪果仁也能听懂李佳琦
  8. Webpack4.0 升级配置
  9. 《Python游戏趣味编程》 第3章 美丽的圆圈画
  10. 高一计算机教学,高一信息技术教学计划参考
  11. C语言数字图像处理---1.3 图像直方图
  12. vuecli3代码压缩混淆
  13. Cousera--machine learning笔记
  14. 某乎x-zse-96、x-zst-81最新通杀方案
  15. QML学习之基本元素Rectangle, Text, Button,Image介绍
  16. python爬虫十二:初步使用Scrapy框架爬取数据
  17. 从从协方差的误差椭圆到PCA
  18. SCI期刊论文发表的优势有哪些
  19. 大白兔奶糖取法(小米公司测试题)——————华清远见
  20. 巴西支付Boleto对巴西外贸有多重要!?

热门文章

  1. ibatis3获得总记录数,同时计算数据分页?
  2. ICallbackEventHandler不支持二次回调的问题
  3. CentOS硬盘挂载之fdisk命令进行查看/分区/格式化/挂载
  4. MacOS系统自带截图快捷键
  5. Hystrix面试 - 深入 Hystrix 断路器执行原理
  6. LayoutInflater.inflate()方法两个参数和三个参数
  7. webpack 生成dist,打zip包
  8. css overflow: scroll 去滚动条后,低端手机有兼容问题,可以这样
  9. “已使用指定的进程(“Web Management Service”)连接到远程计算机,但未能验证服务器的证书”的解决方案
  10. golang中的http server和http client