当前位置:网站首页 > 区块链基础 > 正文

单向链表反转代码(编写一个单向链表反转的程序)



1 问题

利用python实现链表的反向输出,反转单链表。


2 方法

1.程序分析:无

代码清单 1

class Node:
def __init__(self, data):
self.data = data
self.next = None
def get_data(self):
return self.data
class List:
def __init__(self, head):
self.head = head
def is_empty(self):
return self.get_len() == 0
def get_len(self):
length = 0
temp = self.head
while temp is not None:
length += 1
temp = temp.next
return length
def append(self, node):
temp = self.head
while temp.next is not None:
temp = temp.next
temp.next = node
def delete(self, index):
if index < 1 or index > self.get_len():
print("给定位置不合理")
return
if index == 1:
self.head = self.head.next
return
temp = self.head
cur_pos = 0
while temp is not None:
cur_pos += 1
if cur_pos == index-1:
temp.next = temp.next.next
temp = temp.next
def insert(self, pos, node):
if pos < 1 or pos > self.get_len():
print("插入结点位置不合理")
return
temp = self.head
cur_pos = 0
while temp is not Node:
cur_pos += 1
if cur_pos == pos-1:
node.next = temp.next
temp.next =node
break
temp = temp.next
def reverse(self, head):
if head is None and head.next is None:
return head
pre = head
cur = head.next
while cur is not None:
temp = cur.next
cur.next = pre
pre = cur
cur = temp
head.next = None
return pre
def print_list(self, head):
init_data = []
while head is not None:
init_data.append(head.get_data())
head = head.next
return init_data
if __name__=='__main__':
head=Node('head')
link=List(head)
for i in range(10):
node=Node(i)
link.append(node)
print(link.print_list(head))
print(link.print_list(link.reverse(head)))










































































3 结语

针对此类边界条件较多的问题,提出定义类,函数的方法,通过实验,证明该方法是有效的。此方法结合熟练运用了所学的基本python知识,知识虽简单,但需要较清晰的逻辑关系来分类讨论。对验证对象条件的充分理解,是解决此题的关键。希望未来能利用更复杂的python知识解决更多问题。

到此这篇单向链表反转代码(编写一个单向链表反转的程序)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 跳转链接制作(二维码跳转链接制作)2026-01-25 14:09:05
  • b站上的视频链接怎么打开(b站怎么获取视频链接)2026-01-25 14:09:05
  • b站怎么在视频里加跳转链接(b站怎么在视频上放链接)2026-01-25 14:09:05
  • 单向链表的基本操作(单向链表的基本操作有哪些)2026-01-25 14:09:05
  • a标签 打开新窗口(a标签在新窗口打开链接添加什么属性)2026-01-25 14:09:05
  • 链接跳转工具(链接跳转工具在哪)2026-01-25 14:09:05
  • 天气预报链接(天气预报专业版)2026-01-25 14:09:05
  • 腾讯文档怎么跳转链接(腾讯文档怎么跳转链接文件)2026-01-25 14:09:05
  • 怎么点击图片进入链接(点击图片链接到网页)2026-01-25 14:09:05
  • 单向链表和双向链表区别(单双向链表原理)2026-01-25 14:09:05
  • 全屏图片