Python对链表进行反转操作的代码
这段Python代码通过给定指向链表头节点的指针,目标是对链表进行反转操作。程序通过更改节点之间的链接来反转列表。
例子:
输入: Head of following linked list
1->2->3->4->NULL
输出 : Linked list should be changed to,
4->3->2->1->NULL
输入 : Head of following linked list
1->2->3->4->5->NULL
输出 : Linked list should be changed to,
5->4->3->2->1->NULL
输入 : NULL
输出 : NULL
输入 : 1->NULL
输出 : 1->NULL
迭代法:
""" 皮蛋编程(https://www.pidancode.com) 创建日期:2022/4/7 功能描述:Python对链表进行反转操作的代码 时间复杂度 : O(n) """ class Node: # 初始化 def __init__(self, data): self.data = data self.next = None class LinkedList: # 初始化head def __init__(self): self.head = None # 反转链表 def reverse(self): prev = None current = self.head while (current is not None): next = current.next current.next = prev prev = current current = next self.head = prev # 在头部插入新的节点 def push(self, new_data): new_node = Node(new_data) new_node.next = self.head self.head = new_node # 打印链表 def printList(self): temp = self.head while (temp): print(temp.data, end=" ") temp = temp.next # 测试代码 llist = LinkedList() llist.push(20) llist.push(4) llist.push(15) llist.push(85) print("提供的链表") llist.printList() llist.reverse() print("\n反转后的链表") llist.printList()
输出结果如下:
提供的链表
85 15 4 20
反转后的链表
20 4 15 85
代码在python3.9下测试通过
相关文章