链表的逆置
链表是一个特殊的数据结构,其中每个节点包含自己的数据以及下一个值的引用(指针),链表的逆置就是指将链表下一个值的引用(指针)调换,如下图所示:

第一步 构造链表
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
class Node(object): def __init__(self, value,next): self.value= value self.next = nexthead= Node('头',None)last= headfor iin range(5): node= Node('v%s' % i,None) last.next = node last= node# ######### 查看链表关系 ##########print('原始链表信息为:')print(head.value)print(head.next.value)print(head.next.next.value)print(head.next.next.next.value)print(head.next.next.next.next.value)print(head.next.next.next.next.next.value) |
第二步 链表逆置
实现思路:
实现代码:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
def reverse_linked_list(head): """ 链表逆置 :param head: :return: """ if not heador 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_nodenew_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)print(new_head.next.next.next.next.next.value) |
浙公网安备 33010602011771号