@@ -10,7 +10,7 @@ class Node:
1010
1111 def __init__ (self , data , next_node = None ):
1212 self .data = data
13- self .next = next_node
13+ self .next_node = next_node
1414
1515 def __repr__ (self ):
1616 return str (self .data )
@@ -28,7 +28,7 @@ def __iter__(self):
2828 node = self .head
2929 while node :
3030 yield node .data
31- node = node .next
31+ node = node .next_node
3232
3333 def is_empty (self ):
3434 """
@@ -45,7 +45,7 @@ def insert_head(self, data):
4545 """
4646 new_node = Node (data ) # 初始化节点
4747 if self .head is not None :
48- new_node .next = self .head # 节点指向原来的头
48+ new_node .next_node = self .head # 节点指向原来的头
4949 self .head = new_node # 该节点作为节点头
5050
5151 def insert_tail (self , data ):
@@ -58,9 +58,9 @@ def insert_tail(self, data):
5858 self .insert_head (data )
5959 else :
6060 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 )
6464
6565 def show_node_data (self ):
6666 """
@@ -71,7 +71,7 @@ def show_node_data(self):
7171 _temp = self .head
7272 while _temp is not None :
7373 print (_temp .data )
74- _temp = _temp .next
74+ _temp = _temp .next_node
7575
7676 def delete_head (self ):
7777 """
@@ -81,8 +81,8 @@ def delete_head(self):
8181 """
8282 _temp = self .head
8383 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
8686 return _temp
8787
8888 def delete_tail (self ):
@@ -92,14 +92,14 @@ def delete_tail(self):
9292 """
9393 _temp = self .head
9494 if self .head is not None : # 如果头不是None,如果头的指向为空,则删除尾即为将头指向None
95- if self .head .next is None :
95+ if self .head .next_node is None :
9696 self .head = None
9797
9898 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
101101
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)
103103 return _temp
104104
105105 def reverse (self ):
@@ -110,11 +110,12 @@ def reverse(self):
110110 prev = None
111111 current = self .head
112112 while current :
113- # _temp = current.next # 对当前节点的下一个节点赋值
114- # current.next = prev # 反转当前节点的下一个节点指向前一节点
113+ # _temp = current.next_node # 对当前节点的下一个节点赋值
114+ # current.next_node = prev # 反转当前节点的下一个节点指向前一节点
115115 # 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
118119 self .head = prev # 原来的链表头指向新的链表头
119120
120121 @staticmethod
@@ -127,9 +128,9 @@ def find_middle_node(head):
127128 :return:
128129 """
129130 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
133134 return slow
134135
135136
@@ -187,5 +188,5 @@ def find_mid():
187188
188189
189190if __name__ == '__main__' :
190- # main()
191- find_mid ()
191+ main ()
192+ # find_mid()
0 commit comments