Skip to content

Commit 09420aa

Browse files
author
shengshijun
committed
修改linked_list的toString方法
1 parent 429b3de commit 09420aa

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

src/list/linked_list.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ def __init__(self, key, prev, next):
1919
self.next = next
2020

2121
def __str__(self):
22-
return "".join([str(self.key), "-->"])
22+
return str(self.key)
2323

2424
def __init__(self, *arg):
2525
super(LinkedList, self).__init__()
26-
self.__nil = LinkedList.Node(None, None, None)
27-
self.__nil.prev = self.__nil
28-
self.__nil.next = self.__nil
26+
self.__dump = LinkedList.Node(None, None, None)
27+
self.__dump.prev = self.__dump
28+
self.__dump.next = self.__dump
2929
self.__length = 0
3030
for key in arg:
3131
self.append(key)
@@ -34,7 +34,7 @@ def insert(self, index, value):
3434
if index > self.__length:
3535
raise IndexError("can not insert beyond the list")
3636
cur_pos = 0
37-
cur_node = self.__nil
37+
cur_node = self.__dump
3838
while cur_pos < index:
3939
cur_node = cur_node.next
4040
cur_pos += 1
@@ -46,39 +46,39 @@ def insert(self, index, value):
4646
return node
4747

4848
def append(self, value):
49-
last_node = self.__nil.prev
50-
node = LinkedList.Node(value, last_node, self.__nil)
49+
last_node = self.__dump.prev
50+
node = LinkedList.Node(value, last_node, self.__dump)
5151
# 现在结尾的节点指向新加的结尾点
5252
last_node.next = node
53-
self.__nil.prev = node
53+
self.__dump.prev = node
5454
self.__length += 1
5555
# 处理空链表的情况
56-
if self.__nil.next is self.__nil:
57-
self.__nil.next = node
56+
if self.__dump.next is self.__dump:
57+
self.__dump.next = node
5858
return node
5959

6060
def prepend(self, value):
61-
node = LinkedList.Node(value, self.__nil, self.__nil.next)
62-
self.__nil.next = node
63-
self.__nil.next.prev = node
61+
node = LinkedList.Node(value, self.__dump, self.__dump.next)
62+
self.__dump.next = node
63+
self.__dump.next.prev = node
6464
# 处理空链表的情况
65-
if self.__nil.prev is self.__nil:
66-
self.__nil.prev = node
65+
if self.__dump.prev is self.__dump:
66+
self.__dump.prev = node
6767
self.__length += 1
6868
return node
6969

7070
def search(self, value):
71-
cur_node = self.__nil.next
72-
while cur_node is not self.__nil and cur_node.key != value:
71+
cur_node = self.__dump.next
72+
while cur_node is not self.__dump and cur_node.key != value:
7373
cur_node = cur_node.next
7474
return cur_node.key
7575

7676
def delete(self, value):
77-
cur_node = self.__nil.next
78-
while cur_node is not self.__nil and cur_node.key != value:
77+
cur_node = self.__dump.next
78+
while cur_node is not self.__dump and cur_node.key != value:
7979
cur_node = cur_node.next
8080
# 如果不是空链表,那么就是查找到了相应的元素
81-
if cur_node is not self.__nil:
81+
if cur_node is not self.__dump:
8282
cur_node.prev.next = cur_node.next
8383
cur_node.next.prev = cur_node.prev
8484

@@ -88,12 +88,12 @@ def __len__(self):
8888
return self.__length
8989

9090
def __str__(self):
91-
cur_node = self.__nil.next
91+
cur_node = self.__dump.next
9292
li = []
93-
while cur_node is not self.__nil:
93+
while cur_node is not self.__dump:
9494
li.append(str(cur_node))
9595
cur_node = cur_node.next
96-
return "".join(li)
96+
return '[' + ", ".join(li) + ']'
9797

9898

9999
def main():

0 commit comments

Comments
 (0)