反转链表(python版)

反转链表

http://www.nowcoder.com/questionTerminal/75e878df47f24fdc9dc3e400ec6058ca

反转链表是个老生常谈的问题了,可谓是链表的入门级问答。
思路:
给定一个单链表,将其反转。其实很容易想到,只需要修改每个结点的指针指向:即令后一个结点指向前一个结点,并且将表头指针指向最后一个结点即可。这个过程可以用循环实现,也可以用递归来实现。

代码1(非递归版)

class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    def ReverseList(self, pHead):
        """
        :type pHead: ListNode
        :rtype: ListNode
        """
        cur = pHead
        pre = None
        while cur:
            temp = cur.next
            cur.next = pre
            pre = cur
            cur = temp
        return pre

代码2(递归版)

def ReverseList(self, pHead):
        if not pHead: return None
        if not pHead.next: return pHead
        headNode = self.ReverseList(pHead.next)
        pHead.next.next = pHead
        pHead.next = None
        return headNode

麻豆出品,必出精品!

全部评论
为麻豆点赞
点赞 回复 分享
发布于 2021-07-27 22:40
递归只能解决4/7 会报 maximum recursion depth exceeded
点赞 回复 分享
发布于 2021-07-04 10:45
这递归也太强了,萌新一眼看不懂递归,照着代码一行一行的草稿纸上画链表,竟然真就返回了反转后的链表,哭了
点赞 回复 分享
发布于 2021-03-17 17:59
递归不会报错堆栈溢出吗?c语言递归解法估计有用例太长了,会报错
点赞 回复 分享
发布于 2021-02-11 18:23

相关推荐

01-12 14:08
门头沟学院 Java
有寒假来武汉小米总部实习的大学生嘛,我也是小米的员工,想找合租舍友,仅限女生可免租半月,二月初可入住,也就是说房租是2.15开始算的哦~也可以将行李提前放过来~房屋介绍:1、房子情况:有电梯;租的是三室一厅一卫一厨, 但是有个卧室比较小,不打算找人,只住两个人就可以了;衣柜也很大,可以放下很多衣服;房屋采光真的很好,早上起来可以在床上晒太阳的那种,十分惬意(夏季晚上十分好看!)2. 楼下离我们很近的地方有小吃街和一个两层大超市(大概步行两分钟多就可以走到) ,还有一个新开的麦当劳,晚上可以去吃小吃,购买物资也可以去大超市;3. 房子基本设施齐备(洗衣机,冰箱,空调,油烟机,热水器);4. 我有稳定的工作,生活中很注意卫生,周末有时间会自己做饭,可以投喂哦~5. 出行:距离公交站步行10分钟不到,距政务中心,武汉小米总部三站(晚上我都是走回来的,很近的~);一个比较进的地铁,距离大概1km左右;出入我觉得很方便;6. 房租:1150每月,押一付二,无物业费,也没有中介费和其他额外费用。7. 民用水电燃气,用多少交多少,水电费正常平摊。希望你是:1. 女生(本人女),不带异性回家,如有同性朋友来玩,最多过夜一晚;2. 爱干净,讲卫生,作息正常,不吵闹,有稳定工作;3. 好沟通,有任何问题一定要沟通,不要闷着!中介勿扰,非诚勿扰!!!希望不要浪费彼此的时间诚心有意向的可以联系我看房
租房找室友
点赞 评论 收藏
分享
评论
24
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务