@staticmethod 静态方法;传入参数的第一个默认会传入给self,不想要第一个参数变成self使用 @staticmethod
class Node(object):
def __init__(self, value=None, next=None):
self.value = value
self.next = next
@staticmethod #静态方法
def reverse(head):
cur_node = head # 当前节点
new_link = None # 表示反转后的链表
while cur_node != None:
tmp = cur_node.next # cur_node后续节点传递给中间变量
cur_node.next = new_link # cur_node指向new_link
new_link = cur_node # 反转链表更新,cur_node为新的头结点
cur_node = tmp # 原链表节点后移一位
return new_link
link = Node(1, Node(2, Node(3, Node(4, Node(5, Node(6, Node(7, Node(8, Node(9)))))))))
root = Node.reverse(link)
while root:
print(root.value)
root = root.next