Skip to content

Commit 6d989fe

Browse files
committed
chore: code style improvement
1 parent 7779103 commit 6d989fe

File tree

1 file changed

+99
-99
lines changed

1 file changed

+99
-99
lines changed

python/06_linkedlist/singlyLinkedList.py

Lines changed: 99 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -3,114 +3,114 @@
33
#
44
# Author:Lee
55

6-
class Node():
7-
'''链表结构的Node节点'''
86

9-
def __init__(self, data, next=None):
10-
'''Node节点的初始化方法.
7+
class Node(object):
8+
"""链表结构的Node节点"""
9+
10+
def __init__(self, data, next_node=None):
11+
"""Node节点的初始化方法.
1112
参数:
1213
data:存储的数据
1314
next:下一个Node节点的引用地址
14-
'''
15+
"""
1516
self.__data = data
16-
self.__next = next
17+
self.__next = next_node
1718

1819
@property
1920
def data(self):
20-
'''Node节点存储数据的获取.
21+
"""Node节点存储数据的获取.
2122
返回:
2223
当前Node节点存储的数据
23-
'''
24+
"""
2425
return self.__data
2526

2627
@data.setter
2728
def data(self, data):
28-
'''Node节点存储数据的设置方法.
29+
"""Node节点存储数据的设置方法.
2930
参数:
3031
data:新的存储数据
31-
'''
32+
"""
3233
self.__data = data
3334

3435
@property
35-
def next(self):
36-
'''获取Node节点的next指针值.
36+
def next_node(self):
37+
"""获取Node节点的next指针值.
3738
返回:
3839
next指针数据
39-
'''
40+
"""
4041
return self.__next
4142

42-
@next.setter
43-
def next(self, next):
44-
'''Node节点next指针的修改方法.
43+
@next_node.setter
44+
def next_node(self, next_node):
45+
"""Node节点next指针的修改方法.
4546
参数:
4647
next:新的下一个Node节点的引用
47-
'''
48-
self.__next = next
48+
"""
49+
self.__next = next_node
4950

5051

51-
class SinglyLinkedList():
52-
'''单向链表'''
52+
class SinglyLinkedList(object):
53+
"""单向链表"""
5354

5455
def __init__(self):
55-
'''单向列表的初始化方法.'''
56+
"""单向列表的初始化方法."""
5657
self.__head = None
5758

5859
def find_by_value(self, value):
59-
'''按照数据值在单向列表中查找.
60+
"""按照数据值在单向列表中查找.
6061
参数:
6162
value:查找的数据
6263
返回:
6364
Node
64-
'''
65+
"""
6566
node = self.__head
66-
if node != None and node.data != value:
67-
node = node.next
68-
else:
69-
return node
67+
while (node is not None) and (node.data != value):
68+
node = node.next_node
69+
return node
7070

7171
def find_by_index(self, index):
72-
'''按照索引值在列表中查找.
72+
"""按照索引值在列表中查找.
7373
参数:
7474
index:索引值
7575
返回:
7676
Node
77-
'''
77+
"""
7878
node = self.__head
7979
pos = 0
80-
while node != None and pos != index:
81-
node = node.next
80+
while (node is not None) and (pos != index):
81+
node = node.next_node
8282
pos += 1
8383
return node
8484

8585
def insert_to_head(self, value):
86-
'''在链表的头部插入一个存储value数值的Node节点.
86+
"""在链表的头部插入一个存储value数值的Node节点.
8787
参数:
8888
value:将要存储的数据
89-
'''
89+
"""
9090
node = Node(value)
91-
node.next = self.__head
91+
node.next_node = self.__head
9292
self.__head = node
9393

9494
def insert_after(self, node, value):
95-
'''在链表的某个指定Node节点之后插入一个存储value数据的Node节点.
95+
"""在链表的某个指定Node节点之后插入一个存储value数据的Node节点.
9696
参数:
9797
node:指定的一个Node节点
9898
value:将要存储在新Node节点中的数据
99-
'''
100-
if node == None: # 如果指定在一个空节点之后插入数据节点,则什么都不做
99+
"""
100+
if node is None: # 如果指定在一个空节点之后插入数据节点,则什么都不做
101101
return
102102

103103
new_node = Node(value)
104-
new_node.next = node.next
104+
new_node.next_node = node.next
105105
node.next = new_node
106106

107107
def insert_before(self, node, value):
108-
'''在链表的某个指定Node节点之前插入一个存储value数据的Node节点.
108+
"""在链表的某个指定Node节点之前插入一个存储value数据的Node节点.
109109
参数:
110110
node:指定的一个Node节点
111111
value:将要存储在新的Node节点中的数据
112-
'''
113-
if node == None or self.__head == None: # 如果指定在一个空节点之前或者空链表之前插入数据节点,则什么都不做
112+
"""
113+
if (node is None) or (self.__head is None): # 如果指定在一个空节点之前或者空链表之前插入数据节点,则什么都不做
114114
return
115115

116116
if node == self.__head: # 如果是在链表头之前插入数据节点,则直接插入
@@ -120,164 +120,164 @@ def insert_before(self, node, value):
120120
new_node = Node(value)
121121
pro = self.__head
122122
not_found = False # 如果在整个链表中都没有找到指定插入的Node节点,则该标记量设置为True
123-
while pro.next != node: # 寻找指定Node之前的一个Node
124-
if pro.next == None: # 如果已经到了链表的最后一个节点,则表明该链表中没有找到指定插入的Node节点
123+
while pro.next_node != node: # 寻找指定Node之前的一个Node
124+
if pro.next_node is None: # 如果已经到了链表的最后一个节点,则表明该链表中没有找到指定插入的Node节点
125125
not_found = True
126126
break
127127
else:
128-
pro = pro.next
129-
if not_found == False:
130-
pro.next = new_node
131-
new_node.next = node
128+
pro = pro.next_node
129+
if not not_found:
130+
pro.next_node = new_node
131+
new_node.next_node = node
132132

133133
def delete_by_node(self, node):
134-
'''在链表中删除指定Node的节点.
134+
"""在链表中删除指定Node的节点.
135135
参数:
136136
node:指定的Node节点
137-
'''
138-
if self.__head == None: # 如果链表是空的,则什么都不做
137+
"""
138+
if self.__head is None: # 如果链表是空的,则什么都不做
139139
return
140140

141141
if node == self.__head: # 如果指定删除的Node节点是链表的头节点
142-
self.__head = node.next
142+
self.__head = node.next_node
143143
return
144144

145145
pro = self.__head
146146
not_found = False # 如果在整个链表中都没有找到指定删除的Node节点,则该标记量设置为True
147-
while pro.next != node:
148-
if pro.next == None: # 如果已经到链表的最后一个节点,则表明该链表中没有找到指定删除的Node节点
147+
while pro.next_node != node:
148+
if pro.next_node is None: # 如果已经到链表的最后一个节点,则表明该链表中没有找到指定删除的Node节点
149149
not_found = True
150150
break
151151
else:
152-
pro = pro.next
153-
if not_found == False:
154-
pro.next = node.next
152+
pro = pro.next_node
153+
if not not_found:
154+
pro.next_node = node.next_node
155155

156156
def delete_by_value(self, value):
157-
'''在链表中删除指定存储数据的Node节点.
157+
"""在链表中删除指定存储数据的Node节点.
158158
参数:
159159
value:指定的存储数据
160-
'''
161-
if self.__head == None: # 如果链表是空的,则什么都不做
160+
"""
161+
if self.__head is None: # 如果链表是空的,则什么都不做
162162
return
163163

164164
if self.__head.data == value: # 如果链表的头Node节点就是指定删除的Node节点
165-
self.__head = self.__head.next
165+
self.__head = self.__head.next_node
166166

167167
pro = self.__head
168-
node = self.__head.next
168+
node = self.__head.next_node
169169
not_found = False
170170
while node.data != value:
171-
if node.next == None: # 如果已经到链表的最后一个节点,则表明该链表中没有找到执行Value值的Node节点
171+
if node.next_node is None: # 如果已经到链表的最后一个节点,则表明该链表中没有找到执行Value值的Node节点
172172
not_found = True
173173
break
174174
else:
175175
pro = node
176-
node = node.next
177-
if not_found == False:
178-
pro.next = node.next
176+
node = node.next_node
177+
if not_found is False:
178+
pro.next_node = node.next_node
179179

180-
def delete_last_N_node(self, n):
181-
'''删除链表中倒数第N个节点.
180+
def delete_last_n_node(self, n):
181+
"""删除链表中倒数第N个节点.
182182
主体思路:
183183
设置快、慢两个指针,快指针先行,慢指针不动;当快指针跨了N步以后,快、慢指针同时往链表尾部移动,
184184
当快指针到达链表尾部的时候,慢指针所指向的就是链表的倒数第N个节点
185185
参数:
186186
n:需要删除的倒数第N个序数
187-
'''
187+
"""
188188
fast = self.__head
189189
slow = self.__head
190190
step = 0
191191

192192
while step <= n:
193-
fast = fast.next
193+
fast = fast.next_node
194194
step += 1
195195

196-
while fast.next != None:
196+
while fast.next_node is not None:
197197
tmp = slow
198-
fast = fast.next
199-
slow = slow.next
198+
fast = fast.next_node
199+
slow = slow.next_node
200200

201-
tmp.next = slow.next
201+
tmp.next_node = slow.next_node
202202

203203
def find_mid_node(self):
204-
'''查找链表中的中间节点.
204+
"""查找链表中的中间节点.
205205
主体思想:
206206
设置快、慢两种指针,快指针每次跨两步,慢指针每次跨一步,则当快指针到达链表尾部的时候,慢指针指向链表的中间节点
207207
返回:
208208
node:链表的中间节点
209-
'''
209+
"""
210210
fast = self.__head
211211
slow = self.__head
212212

213-
while fast.next != None:
214-
fast = fast.next.next
215-
slow = slow.next
213+
while fast.next_node is not None:
214+
fast = fast.next_node.next_node
215+
slow = slow.next_node
216216

217217
return slow
218218

219219
def create_node(self, value):
220-
'''创建一个存储value值的Node节点.
220+
"""创建一个存储value值的Node节点.
221221
参数:
222222
value:将要存储在Node节点中的数据
223223
返回:
224224
一个新的Node节点
225-
'''
225+
"""
226226
return Node(value)
227227

228228
def print_all(self):
229-
'''打印当前链表所有节点数据.'''
229+
"""打印当前链表所有节点数据."""
230230
pos = self.__head
231-
if pos == None:
232-
print('当前链表还没有数据')
231+
if pos is None:
232+
print("当前链表还没有数据")
233233
return
234-
while pos.next != None:
235-
print(str(pos.data) + ' --> ', end='')
236-
pos = pos.next
234+
while pos.next_node is not None:
235+
print(str(pos.data) + " --> ", end="")
236+
pos = pos.next_node
237237
print(str(pos.data))
238238

239239
def reversed_self(self):
240-
'''翻转链表自身.'''
241-
if self.__head == None or self.__head.next == None: # 如果链表为空,或者链表只有一个节点
240+
"""翻转链表自身."""
241+
if self.__head is None or self.__head.next is None: # 如果链表为空,或者链表只有一个节点
242242
return
243243

244244
pre = self.__head
245245
node = self.__head.next
246-
while node != None:
246+
while node is not None:
247247
pre, node = self.__reversed_with_two_node(pre, node)
248248

249249
self.__head.next = None
250250
self.__head = pre
251251

252252
def __reversed_with_two_node(self, pre, node):
253-
'''翻转相邻两个节点.
253+
"""翻转相邻两个节点.
254254
参数:
255255
pre:前一个节点
256256
node:当前节点
257257
返回:
258258
(pre,node):下一个相邻节点的元组
259-
'''
260-
tmp = node.next
261-
node.next = pre
259+
"""
260+
tmp = node.next_node
261+
node.next_node = pre
262262
pre = node # 这样写有点啰嗦,但是能让人更能看明白
263263
node = tmp
264-
return (pre, node)
264+
return pre, node
265265

266266
def has_ring(self):
267-
'''检查链表中是否有环.
267+
"""检查链表中是否有环.
268268
主体思想:
269269
设置快、慢两种指针,快指针每次跨两步,慢指针每次跨一步,如果快指针没有与慢指针相遇而是顺利到达链表尾部
270270
说明没有环;否则,存在环
271271
返回:
272272
True:有环
273273
False:没有环
274-
'''
274+
"""
275275
fast = self.__head
276276
slow = self.__head
277277

278-
while fast.next != None and fast != None:
279-
fast = fast.next
280-
slow = slow.next
278+
while (fast.next_node is not None) and (fast is not None):
279+
fast = fast.next_node
280+
slow = slow.next_node
281281
if fast == slow:
282282
return True
283283

0 commit comments

Comments
 (0)