目录
方法1:原地逆置
class LNode: # 在python中创建一个像C中的结构体
def __init__(self):
self.data = None
self.next = None
def Reverse(head):
if head == None or head.next == None: # 当未传入参数和链表只有头结点的时候就直接跳出
return
# 新建3个变量,作用相当于c语言里面的指针 前驱 当前 后继 结点
pre = None
cur = None
next = None
# 把链表首结点变成尾结点
cur = head.next
next = cur.next
cur.next = None # 修改第一个结点的后继指空
# 前驱后继结点继续向后推进
pre = cur
cur = next
while cur.next != None: # 若cur指针指向结点还有后继结点的时候,也就是一直循环到链表的倒数第二个结点
next = cur.next # 先保存后继
cur.next = pre # 再改尾指针
# 前驱后继结点继续向后推进
pre = cur
cur = next
# 对于最后一个结点的特殊处理
cur.next = pre
head.next = cur
if __name__ ==