用 Python实现链表的翻转,奇偶下标修改(利用数组,非常简单)
来源:互联网 发布:淘宝怎么买黑客肉鸡 编辑:程序博客网 时间:2024/06/06 02:17
1. 首先是链表翻转
效果: 0->1->2->3 ...... ->9 变为 9->8->7->......->0
class NodeList: def __init__(self,x): self.next = None self.val = x def reverse(root): save = [] head = root while(head!=None): save.append(head) head = head.next p = head = save.pop() while(save): head.next = save.pop() head = head.next head.next = None return p head = tmp = NodeList(-1)for i in range(10): tmp.next = NodeList(i) tmp = tmp.next res = reverse(head.next) while(res!=None): print(res.val) res = res.next
效果:效果: 0->1->2->3 ...... ->9 变为 0->2->4->6->8->1->3->.......->9
class NodeList: def __init__(self,x): self.next = None self.val = x def reverse(root): ji = [] ou = [] head = root save = [] while(head!=None): save.append(head) head = head.next while(save): ou.append(save.pop(0)) if(len(save)==0): break ji.append(save.pop(0)) head = p = ou.pop(0) while(ou): head.next = ou.pop(0) head = head.next while(ji): head.next = ji.pop(0) head = head.next head.next = None return p head = tmp = NodeList(-1)for i in range(10): tmp.next = NodeList(i) tmp = tmp.next res = reverse(head.next) while(res!=None): print(res.val) res = res.next
3. 将所有奇偶下标的节点交换位置
效果: 0->1->2->3 ...... ->9 变为 1->0->3->2->5->4->7->6->9
class NodeList: def __init__(self,x): self.next = None self.val = x def reverse(root): ji = [] ou = [] head = root save = [] while(head!=None): save.append(head) head = head.next while(save): ou.append(save.pop(0)) if(len(save)==0): break ji.append(save.pop(0)) head = p = ji.pop(0) while(ji): head.next = ou.pop(0) head = head.next head.next = ji.pop(0) head = head.next return p head = tmp = NodeList(-1)for i in range(10): tmp.next = NodeList(i) tmp = tmp.next res = reverse(head.next) while(res!=None): print(res.val) res = res.next
0 0
- 用 Python实现链表的翻转,奇偶下标修改(利用数组,非常简单)
- Python 实现通过指针实现链表翻转,链表奇偶下标交换,链表的冒泡排序
- 翻转链表的三种方法(python实现)
- 利用数组和链表实现简单的哈希表
- 利用数组操作实现灰度图像的上下左右翻转(C++&opencv)
- 巧妙利用数组下标
- Python 实现简单的数组
- 一个简单的实现matlab数组下标操作的类实现
- C语言实现数组的奇偶排序
- 利用数组下标实现从任意位置开始得循环
- 链表的翻转实现
- python实现单链表的翻转
- 利用Python实现简单的日记本
- 利用python实现简单的爬虫
- 矩阵翻转--python的伪数组
- NYOJ+Map的使用利用数组下标访问
- 1036. Crypto Columns数组与下标(二维数组) 简单
- 用数组实现直接插入排序的过程中数组下标越界的问题
- java中一个线程等待另一个线程执行完后再执行
- App多入口实现与取消
- jQuery Ajax使用实例
- StringBuffer与StringBuilder的区别
- MySQL的图形化界面navicat破解版
- 用 Python实现链表的翻转,奇偶下标修改(利用数组,非常简单)
- 秒杀系统的架构解决之道
- POJ 2406 Power Strings(KMP算法)
- google protobuf 发送与接收
- Java学习之LinkList
- 二维码展示界面高亮设置,仿支付宝收款码,付款码界面高亮实现
- 多线程
- 正则表达式 regular expression(三)
- spring boot -- 过滤器