鏈表是一個特殊的數據結構,其中每個節點包含自己的數據以及下一個值的引用(指針),鏈表的逆置就是指將鏈表下一個值的引用(指針)調換,如下圖所示:
鏈表的節點的結構如下:
data為自定義的數據,next為下一個節點的地址
一 構造鏈表
class Node(object): def __init__(self, value, next): self.value = value self.next = next head = Node('頭', None) last = head l = ['涉哥', '剛哥', '雷哥', '強哥'] for i in l: node = Node('%s' % i, None) last.next = node last = node # ######### 查看鏈表關系 ########## print('原始鏈表信息為%s'%head.value) print(head.next.value) print(head.next.next.value) print(head.next.next.next.value) print(head.next.next.next.next.value)
第二步 鏈表逆置
def reverse_linked_list(head): """ 鏈表逆置 :param head: :return: """ if not head or not head.next: return head prev_node = None current_node = head next_node = head.next while True: current_node.next = prev_node # 變箭頭 if not next_node: break prev_node = current_node current_node = next_node next_node = current_node.next return current_node new_head = reverse_linked_list(head) print('逆置之后的鏈表') print(new_head.value) print(new_head.next.value) print(new_head.next.next.value) print(new_head.next.next.next.value) print(new_head.next.next.next.next.value)