python实现链表反转_反转链表(Python)
鏈表反轉遞歸法和循環法的實現:
# 定義節點
class Node:
def __init__(self, value):
self.data = value
self.next = None
# 鏈表反轉
# 1. 循環法
def reverse(head_node):
next_node = head_node.next
prev_node = head_node
#第一個節點反轉后成為最后一個節點
prev_node.next = None
while True:
head_node = next_node
next_node = head_node.next
#反轉
head_node.next = prev_node
if next_node == None:
break
prev_node = head_node
return head_node
## 2. 遞歸法
def recursive_reverse(reversed_node, new_node):
if new_node == None:
print(reversed_node)
return reversed_node
next_node = new_node.next
new_node.next = reversed_node
return recursive_reverse(new_node, next_node)
if __name__ == '__main__':
# 創建鏈表
head_node = Node(0)
node1 = Node(1)
node2 = Node(2)
node3 = Node(3)
node4 = Node(4)
head_node.next = node1
node1.next = node2
node2.next = node3
node3.next = node4
# 循環法
# head_node = reverse(head_node)
# 遞歸法
new_node = head_node.next
head_node.next = None
head_node = recursive_reverse(head_node, new_node)
# 打印反轉后的鏈表
while head_node != None:
print(head_node.data)
head_node = head_node.next
總結
以上是生活随笔為你收集整理的python实现链表反转_反转链表(Python)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 类装饰器和函数装饰器区别_
- 下一篇: python中横向制表符_Python-