reverse linklist 反转链表的一部分 python
来源:互联网 发布:编写软件 编辑:程序博客网 时间:2024/06/05 20:14
描述:
Reverse a linked list from position m to n. Do it in-place and in one-pass.For example:
Given 1->2->3->4->5->nullptr, m = 2 and n = 4,
return 1->4->3->2->5->nullptr.Note:
Given m, n satisfy the following condition: 1 ≤ m ≤ n ≤ length of list.
思路:对【m, n】区间的数进行头插法插入
代码如下:
# coding=utf-8"""思路就是针对反转区间的数使用头插法,逻辑比较繁琐"""class LinkNode(object): # 定义链表节点 def __init__(self, val, nextnode=None): self.val = val self.nextnode = nextnodeclass Solution(object): def reverse_between(self, linkroot=None, m=0, n=0): root = LinkNode(0) # 处理反转起始位置为1,而增加一个节点 pre = root pre.nextnode = linkroot p = linkroot t = m - 1 while t > 0: # pre 始终记录反转的起始位置的直接前驱 pre = p p = p.nextnode # 始终保持指向反转的起始位置节点 t -= 1 cur = p # cur记录每次头插法的点 q = p.nextnode # q记录反转区间中的点 for _ in range(m + 1, n + 1): # 从反转起始的下一个点开始头插法 if q is not None: r = q.nextnode # r记录q的直接后继节点 pre.nextnode = q q.nextnode = cur p.nextnode = r cur = q q = r return root.nextnodeif __name__ == '__main__': """1->2->3->4->5->6->7->8->9 to 1->6->5->4->3->2->7->8->9""" roota = LinkNode(1) pp = roota for i in range(2, 10): qq = LinkNode(i) pp.nextnode = qq pp = pp.nextnode root = Solution().reverse_between(roota, 2, 6) while root is not None: print root.val, root = root.nextnode
阅读全文
0 0
- reverse linklist 反转链表的一部分 python
- leetcode:Reverse Linked List II (反转链表中的一部分)【面试算法题】
- 逆转链表的一部分 Reverse Linked List II
- LeetCode--Reverse Linked List 反转链表(Python)
- 翻转链表:LinkList:Reverse a LinkList has some interesting method(C++)
- linklist----reverse
- linklist 链表的实现
- 链表的反转问题(Reverse Linked List)
- 反转链表(reverse a lnked list)
- 206. Reverse Linked List&反转链表
- Reverse Linked List(反转链表)
- Reverse Linked List 反转链表
- Reverse Linked List(反转链表)
- Reverse Linked List(反转链表)
- C++实现的链表,LinkList
- LinkList链表操作
- python---链表反转
- 链表的链性表的c语言实现方式 linklist.h 和 linklist.c
- anaconda下使用pip安装opencv
- Centos 7开启网卡自动获取IP的详细方法
- git关联Jenkins使用总结(在海尔U+的git)
- 统一登录的基本原理
- Eigen的学习
- reverse linklist 反转链表的一部分 python
- Android中如何关闭Log
- 一种基于51单片机的多任务机制及应用
- 悦读---《读者》(1)
- 2017 Multi-University Training Contest
- jQuery Mobile中头部栏header的data-*选项
- 小数阶乘
- 微信小程序-自定义字体
- 高德地图云API使用