@@ -10,7 +10,7 @@ class Node:
10
10
11
11
def __init__ (self , data , next_node = None ):
12
12
self .data = data
13
- self .next = next_node
13
+ self .next_node = next_node
14
14
15
15
def __repr__ (self ):
16
16
return str (self .data )
@@ -28,7 +28,7 @@ def __iter__(self):
28
28
node = self .head
29
29
while node :
30
30
yield node .data
31
- node = node .next
31
+ node = node .next_node
32
32
33
33
def is_empty (self ):
34
34
"""
@@ -45,7 +45,7 @@ def insert_head(self, data):
45
45
"""
46
46
new_node = Node (data ) # 初始化节点
47
47
if self .head is not None :
48
- new_node .next = self .head # 节点指向原来的头
48
+ new_node .next_node = self .head # 节点指向原来的头
49
49
self .head = new_node # 该节点作为节点头
50
50
51
51
def insert_tail (self , data ):
@@ -58,9 +58,9 @@ def insert_tail(self, data):
58
58
self .insert_head (data )
59
59
else :
60
60
temp = self .head # 有头,顺着链表一直往下找,找到最后,将该节点作为最后节点
61
- while temp .next :
62
- temp = temp .next
63
- temp .next = Node (data )
61
+ while temp .next_node :
62
+ temp = temp .next_node
63
+ temp .next_node = Node (data )
64
64
65
65
def show_node_data (self ):
66
66
"""
@@ -71,7 +71,7 @@ def show_node_data(self):
71
71
_temp = self .head
72
72
while _temp is not None :
73
73
print (_temp .data )
74
- _temp = _temp .next
74
+ _temp = _temp .next_node
75
75
76
76
def delete_head (self ):
77
77
"""
@@ -81,8 +81,8 @@ def delete_head(self):
81
81
"""
82
82
_temp = self .head
83
83
if self .head is not None :
84
- self .head = self .head .next
85
- _temp .next = None
84
+ self .head = self .head .next_node
85
+ _temp .next_node = None
86
86
return _temp
87
87
88
88
def delete_tail (self ):
@@ -92,14 +92,14 @@ def delete_tail(self):
92
92
"""
93
93
_temp = self .head
94
94
if self .head is not None : # 如果头不是None,如果头的指向为空,则删除尾即为将头指向None
95
- if self .head .next is None :
95
+ if self .head .next_node is None :
96
96
self .head = None
97
97
98
98
else :
99
- while _temp .next . next is not None : # 当头的next的next不为空,则继续往下找,直到找到倒数第二个节点
100
- _temp = _temp .next
99
+ while _temp .next_node . next_node is not None : # 当头的next的next不为空,则继续往下找,直到找到倒数第二个节点
100
+ _temp = _temp .next_node
101
101
102
- _temp .next , _temp = None , _temp .next # 将倒数第二个节点的next指向None,该节点变为最后一个节点(a,b = b,a)
102
+ _temp .next_node , _temp = None , _temp .next_node # 将倒数第二个节点的next指向None,该节点变为最后一个节点(a,b = b,a)
103
103
return _temp
104
104
105
105
def reverse (self ):
@@ -110,11 +110,12 @@ def reverse(self):
110
110
prev = None
111
111
current = self .head
112
112
while current :
113
- # _temp = current.next # 对当前节点的下一个节点赋值
114
- # current.next = prev # 反转当前节点的下一个节点指向前一节点
113
+ # _temp = current.next_node # 对当前节点的下一个节点赋值
114
+ # current.next_node = prev # 反转当前节点的下一个节点指向前一节点
115
115
# prev = current # 前一个节点变成当前节点
116
- _temp , current .next , prev = current .next , prev , current
117
- current = _temp # 节点偏移/迭代
116
+ # current = _temp # 节点偏移/迭代
117
+ '''The above code equate to the follow.'''
118
+ current .next_node , prev , current = prev , current , current .next_node
118
119
self .head = prev # 原来的链表头指向新的链表头
119
120
120
121
@staticmethod
@@ -127,9 +128,9 @@ def find_middle_node(head):
127
128
:return:
128
129
"""
129
130
slow , fast = head , head
130
- fast = fast .next if fast else None
131
- while fast and fast .next :
132
- slow , fast = slow .next , fast .next . next
131
+ fast = fast .next_node if fast else None
132
+ while fast and fast .next_node :
133
+ slow , fast = slow .next_node , fast .next_node . next_node
133
134
return slow
134
135
135
136
@@ -187,5 +188,5 @@ def find_mid():
187
188
188
189
189
190
if __name__ == '__main__' :
190
- # main()
191
- find_mid ()
191
+ main ()
192
+ # find_mid()
0 commit comments