这个题在LeetCode中是简单级别...

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

示例 1:


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


输入:head = [1,2]
输出:[2,1]
示例 3:

输入:head = []
输出:[]

提示:

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

进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-linked-list
解题思路:

原链表1 -> 2 -> 3 -> 4 -> 5 -> null
与很多解法不同,这个解法反转后的链表是 null <- 1 <- 2 <- 3 <- 4 <- 5
核心思想是找到当前节点与下个节点,将下个节点的next指向当前节点,遍历时将下个节点更新为当前节点;

# Definition for singly-linked list.
class ListNode:def __init__(self, val=0, next=None):self.val = valself.next = next
class Solution:def reverseList(self, head: ListNode) -> ListNode:# 判断特殊情况if not head or not head.next:return headpre = Nonewhile head:# 暂存当前node的下一个节点;next_node = head.next# 当前node的下一个节点指向前一个nodehead.next = pre# 更新,当前node为前一个节点pre = head# 更新,下一个节点为当前nodehead = next_nodereturn pre

Python反转链表相关推荐

  1. python 反转链表

    反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点.示例:输入: 1->2->3->4->5->NULL 输出: 5->4->3 ...

  2. python反转链表_206. 反转链表(Python)

    题目 难度:★★☆☆☆ 类型:链表 反转一个单链表. 进阶: 你可以迭代或递归地反转链表.你能否用两种方法解决这道题? 示例 输入: 1->2->3->4->5->NUL ...

  3. [Python] 反转链表相关技巧

    前言 给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头. 要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)  ...

  4. python反转链表和成对反转

    https://www.cnblogs.com/tianqizhi/p/9673894.html https://blog.csdn.net/weixin_34168700/article/detai ...

  5. python实现反转链表讲解_基于Python实现2种反转链表方法代码实例

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

  6. python实现链表反转(转置)

    python实现链表反转(转置) 链表是面试里面经常涉及到的考点,因为链表的结构相比于Hashmap.Hashtable.Concurrenthashmap或者图等数据结构简单许多,对于后者更多面试的 ...

  7. 【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 剑指Offer(三):从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每 ...

  8. python链表翻转_反转链表(两种Python解法)

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

  9. 翻转链表python递归_Python LeetCode-206.反转链表(难度-简单) 两个方法-迭代和递归,以及超简写法(python)...

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

  10. C++ Python 链表逆序 反转链表

    ** 以下为C++版本 ** 已知链表头节点指针head,将链表逆序.(不可申请额外空间) #include<stdio.h> struct ListNode {int val; //数据 ...

最新文章

  1. 游戏编程十年总结(下)(转)
  2. hbase的集群搭建
  3. java学习(七)java中抽象类及 接口
  4. 服务器程序的Xamarin-Java.Interop体验(一)
  5. DotNetBar office2007效果
  6. 目前市场上的电脑一体机从计算机种类,一体机电脑与普通电脑的区别
  7. 语雀携手Teambition,玩转项目协作与知识管理
  8. Spark初识-弹性分布式数据集RDD
  9. FirefoxOS 1.2 on ZTE Open
  10. LeetCode 面试题13. 机器人的运动范围
  11. Oracle数据库SqlLoad常用技巧总结word版
  12. SYBASE性能优化
  13. SourcesTree使用手册2:文件更新
  14. CSS的inherit与auto使用分析
  15. Eclipse-导入maven项目
  16. Protobuf3 序列化
  17. 关于ARMA模型的R语言实现
  18. C/C++:个人收支系统实现
  19. 未知错误 ID:-2147467259 操作必须使用一个可更新的查询
  20. 极速office(Excel)怎么把边框线条加粗

热门文章

  1. 我的未来式计算机简谱,我的未来式简谱-爱情公寓歌曲-孙世彦曲谱
  2. 思考题4:掷骰子游戏
  3. 京东首推的“SpringBoot+Vue前后端分离全栈项目”牛炸天了?
  4. java 原子量_Java多线程-新特征-原子量
  5. Gradle初级使用教程
  6. 远程软件TeamViewer如何导出选项注册表文件?
  7. pano2vr 制作交互热点模板时常显示文字
  8. CentOS7详细安装教程--图文介绍超详细
  9. DOM drag 事件
  10. 一、Spark大数据技术基础