class ListNode:
Value = '' # 节点要储存的值,因为Python是弱类型,因此无需传入泛型
Next = None # 下一个节点,初始化时为空值 def __init__(self, value): # 初始化,默认初始化节点时,必须给定节点要储存的值(Value)。
self.Value = value
self.Next = None def set_next(self, next): # 指定下一个节点(Next)。
self.Next = next def get_value(self): # 获取当前节点所存储的值
return self.Value def get_next(self): # 获取下一个节点
return self.Next class List:
Head = None # 头结点 def __init__(self): # 初始化链表函数
self.Head = ListNode(0) # 初始化链表时即初始化头结点,其内的值为0 def add(self, value): # 添加节点函数
node = self.Head
node.Value += 1 # 头结点中存储的长度+1
while node.Next is not None:
node = node.Next
node.Next = ListNode(value) # 初始化新节点,并添加到末尾 def print_list(self): # 打印列表函数
node = self.Head
print('The List Length is ', end='')
print(node.get_value(), end=' :[') # 打印一下列表总长度
if node.Next is None: # 如果是空链表直接结束
print("]")
return
node = node.Next # 从头结点下一个节点开始操作
while node.Next is not None:
print(node.get_value(), end=' ,') # 打印节点值
node = node.Next # 下一节点
print(node.get_value(), end=']\n') # 打印最后一个节点并换行 def reverse(self): # 将链表逆序函数
print("逆序操作!")
head = self.Head # 头结点先拿出来
if head.Next is None:
return # 如果只有头结点,便直接返回
node = head.Next # 从头结点下一个节点开始操作
temp = None # 记录下一节点的临时值
pre = None # 记录上一节点的临时值
while node.Next is not None: # 当下一节点不为空的时候循环
temp = node.Next # 先记住本节点的下一节点
node.Next = pre # 让本节点指向上一节点【核心操作】
pre = node # 将上一节点临时指针后移
node = temp # 将本节点后移
node.Next = pre # 当循环结束之后,最后一个节点指向前一节点,完成链表逆序
head.Next = node # 将头结点指向新的链表起始节点 if __name__ == '__main__': # 主函数开始
my_list = List() # 初始化链表
for i in range(0, 10):
my_list.add(i) # 增加节点值
my_list.print_list() # 打印一下
my_list.reverse() # 逆序操作
my_list.print_list() # 再打印一下看看

链表逆序---python的更多相关文章

  1. Reverse Linked List II 单向链表逆序(部分逆序)

    0 问题描述 原题点击这里. 将单向链表第m个位置到第n个位置倒序连接.例如, 原链表:1->2->3->4->5, m=2, n =4 新链表:1->4->3-& ...

  2. 链表逆序(JAVA实现)

    题目:将一个有链表头的单向单链表逆序 分析: 链表为空或只有一个元素直接返回: 设置两个前后相邻的指针p,q,使得p指向的节点为q指向的节点的后继: 重复步骤2,直到q为空: 调整链表头和链表尾: 图 ...

  3. ZT 链表逆序

    链表逆序 原帖地址http://blog.csdn.net/niuer09/article/details/5961004 分类: C/C++2010-10-23 17:23 18425人阅读 评论( ...

  4. 链表逆序,java实现

    package com.cskaoyan.linkedlist; //反转数组 public class LinkedListDemo2 { public static Node reverse(No ...

  5. C# 单向链表 逆序(递归)

    static void Main(string[] args) { while (true) { LinkedList L = new LinkedList(); L.Add(new Node(&qu ...

  6. 剑指Offer03 逆序输出链表&链表逆序

    多写了个逆序链表 /************************************************************************* > File Name: ...

  7. 基于visual Studio2013解决面试题之0504单链表逆序

     题目

  8. 【云栖社区001-数据结构】如何实现一个高效的单向链表逆序输出(Java版)

    如题 动手之前,发现自己很擅长用C语言来写链表. 不过,既然自己做的是Java开发,那么还是用Java实现这个算法吧:毕竟,以后的若干年里都差不多要跟Java打交道了. 于是,先将Java版的链表自学 ...

  9. C语言两个升序递增链表逆序合并为一个降序递减链表,并去除重复元素

    #include"stdafx.h" #include<stdlib.h> #define LEN sizeof(struct student) struct stud ...

随机推荐

  1. Linux下RAID磁盘阵列的原理与搭建

    RAID概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有"独立磁盘构成的具有冗余能力的阵列"之意. 磁盘阵列是由很多价格较 ...

  2. centOS 7-Hadoop3.3.0完全分布式部署

    本文内容不乏对各大佬的案例借鉴,侵删. 本次实验用到的有虚拟机,Xshell,Hadoop压缩包和jdk压缩包   hadoop111A:192.168.241.111 hadoop222B:192. ...

  3. MongoDB学习笔记:文档Crud Shell

    MongoDB学习笔记:文档Crud Shell   文档插入 一.插入语法 db.collection.insertOne() 将单个文档插入到集合中.db.collection.insertMan ...

  4. 人工智能训练云燧T10

    人工智能训练云燧T10 基于邃思芯片打造的面向云端数据中心的人工智能训练加速产品,具有高性能.通用性强.生态开放等优势,可广泛应用于互联网.金融.教育.医疗.工业及政务等人工智能训练场景. 超强算力 ...

  5. GPU编程和流式多处理器(五)

    GPU编程和流式多处理器(五) 4. 条件代码 硬件实现了"条件代码"或CC寄存器,其中包含用于整数比较的常用4位状态向量(符号,进位,零,溢出).可以使用比较指令(例如ISET) ...

  6. Minkowski坐标管理

    Minkowski坐标管理 坐标键 classMinkowskiEngine.CoordsKey(D) __init__(D) 初始化self. See help(type(self))有关准确的签名 ...

  7. YOLOv3和YOLOv4长篇核心综述(下)

    YOLOv3和YOLOv4长篇核心综述(下) 4.3.3 Neck创新 在目标检测领域,为了更好的提取融合特征,通常在Backbone和输出层,会插入一些层,这个部分称为Neck.相当于目标检测网络的 ...

  8. 重新整理 .net core 实践篇—————日志系统之服务与日志之间[十六]

    前言 前文介绍了一些基本思路,那么这里介绍一下,服务如何与配置文件配合. 正文 服务: public interface ISelfService { void ShowLog(); } public ...

  9. sql 数据库使用注意事项

    1.在对数据库表进行操作时,一定要注意当前操作的是哪一个数据库,否则很容易引起不必要的错误.对于master数据库中的数据文件,尽量不要去对其操作. 2.可通过图形方式对数据库进行备份操作,可通过数据 ...

  10. SpringCloud01:微服务概述

    一.什么是微服务 微服务是一种架构风格,是一种架构设计方式,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地 ...