博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《剑指Offer》JZ15:反转链表(双解法)
阅读量:4091 次
发布时间:2019-05-25

本文共 1165 字,大约阅读时间需要 3 分钟。

本系列文章为《剑指Offer》刷题笔记。

刷题平台:

在这里插入图片描述
思路
我们使用三个指针,分别指向当前遍历到的结点、它的前一个结点以及后一个结点。
需要注意反转过程中不要丢了节点。可以使用两个指针,也可以使用三个指针。
【解法1】两个指针
在这里插入图片描述

# -*- coding:utf-8 -*-# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    # 返回ListNode    def ReverseList(self, pHead):        # write code here        if not pHead or not pHead.next:            return pHead        cur , prev= pHead,None        while cur:            temp = cur.next            cur.next = prev            prev = cur            cur = temp        return prev

【解法2】三个指针

在这里插入图片描述

# -*- coding:utf-8 -*-# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    # 返回ListNode    def ReverseList(self, pHead):        # write code here        if not pHead or not pHead.next:            return pHead                prev=None        cur = pHead        post = cur.next                while post:            cur.next = prev            prev = cur            cur = post            post = post.next        cur.next = prev    # 最后还要给prev一下        return cur

注:至此,是cur完成了所有链表元素的遍历。prev也可以,但还要加一句prev = cur

参考 https://www.jb51.net/article/190180.htm

转载地址:http://fyjii.baihongyu.com/

你可能感兴趣的文章
用结构体指针前必须要用malloc,不然会出现段错误
查看>>
Linux系统中的美
查看>>
一些实战项目(linux应用层编程,多线程编程,网络编程)
查看>>
原来k8s docker是用go语言写的,和现在所讲的go是一个东西!
查看>>
STM32CubeMX 真的不要太好用
查看>>
不要买铝合金机架的无人机,不耐摔,易变形弯曲。
查看>>
ACfly也是基于FreeRTOS的
查看>>
我发现七月在线的GAAS课程基本都讲到了
查看>>
电机堵转
查看>>
carzepony也在想往FreeRTOS上迁移
查看>>
可以买个好点的电烙铁
查看>>
ACfly调参记录(包括ACfly-F330和ACfly-T265)
查看>>
一定记得每飞几次或者隔一天要把螺丝和浆帽拧一次,确实会松的
查看>>
《多旋翼无人飞行器嵌入式飞控开发指南》里基于FreeRTOS的无人机软件框架
查看>>
思岚A1的SDK其实很好读懂,每个函数清晰明了,可以直接调用
查看>>
串级 PID 为什么外环输出是内环的期望?(和我之前对串级PID的总结一样)
查看>>
我刚刚才完全清楚GPS模块的那根杆子是怎么固定安装好的
查看>>
去github里面找找也没有别人无人机+SLAM的工程
查看>>
现在明白为什么无名博客里好几篇文章在讲传感器的滞后
查看>>
Pixhawk解锁常见错误
查看>>