翻转链表的三种方法(python实现)
来源:互联网 发布:中国为什么能崛起知乎 编辑:程序博客网 时间:2024/06/18 08:38
具体方法来自看图理解单链表的反转,以下为该博客中方法的python实现以及测试
方法一:利用三个指针逐个翻转
def func1(head): p = head q = head.next p.next = None while q: r = q.next q.next = p p = q q = r return p
方法二:尾插法翻转
def func2(head): p = head.next while p.next: q = p.next p.next = q.next head.next = q q.next = p p.next = head head = head.next p.next.next = None return head
方法三:递归
def func3(head): if head.next == None: return head new_head = func3(head.next) head.next.next = head head.next = None return new_head
节点定义及测试用例:
#节点定义class LNode: def __init__(self, x): self.val = x self.next = None#测试用例if __name__ == '__main__': l1 = LNode(3) l1.next = LNode(2) l1.next.next = LNode(1) l1.next.next.next = LNode(99) l = func3(l1) print l.val, l.next.val, l.next.next.val, l.next.next.next.val
阅读全文
0 0
- 翻转链表的三种方法(python实现)
- cocos2dx之实现扑克牌翻转效果的三种方法
- cocos2dx之实现扑克牌翻转效果的三种方法
- cocos2dx之实现扑克牌翻转效果的三种方法
- 翻转数组 (三种实现方式)
- 用 Python实现链表的翻转,奇偶下标修改(利用数组,非常简单)
- Java 倒置(翻转)链表的两种实现
- 链表的翻转实现
- python实现单链表的翻转
- python 语言实现字符串的拼接(三种方法)
- 矩阵的QR分解(三种方法)Python实现
- Python两种列表翻转方法的效率比较
- python中字符串的翻转(方法总结)
- 三步翻转法------有意思的方法
- 链表翻转的是三种方法
- 翻转链表的C++实现
- 使用c++ python实现字符串的翻转
- 【机器学习算法-python实现】协同过滤(cf)的三种方法实现
- MongoDB 文档的查询和插入操作
- linux——防火墙
- 机器学习之逻辑回归 Logistic Regression(三)scikit-learn算法库
- HTML基础(9.2 表格)
- python(01)——变量和数据类型
- 翻转链表的三种方法(python实现)
- IDEA2017.3免注册码激活
- 双11电商技术:不再谷满谷,坑满坑,看苏宁库存架构转变
- 变量的作用域
- 领域驱动设计心得
- 使用canvas画带箭头的圆环
- 分享一段入坑java的心得。写给新入门的java程序员。
- 发两款原创小工具
- PCB之焊盘、过孔、丝印层、阻焊层等