【发布时间】:2017-08-22 23:26:03
【问题描述】:
首先,我确实看过这个:Deleting the last element in my linked list(研究了它和我的代码一个多小时),但我似乎无法“理解”这个。
我正在尝试:
- 删除 - “pop” - 我的单链表中的最后一项;
- 返回删除的项目,最后;
- 打印出没有删除项目的“新”列表。
这是我的代码:
class Node(object):
def __init__(self, value, nxt):
self.value = value
self.next = nxt
def __repr__(self):
nval = self.next and self.next.value or None
return f"[{self.value}]"#":{repr(nval)}]"
class List(object):
def __init__(self):
self.begin = None
self.end = None
def push(self, obj):
node = Node(obj, None)
if self.begin == None:
self.begin = node
self.end = self.begin
else:
self.end.next = node
self.end = node
def pop(self):
end = self.end
start = self.begin
while start.next is not None:
start = start.next
start.next = None
return end.value
l = List()
l.push("a")
l.push("b")
l.push("c")
l.push("d")
print (l)
print (l.pop())
print ("AND FINALLY:", l)
当我运行它时,我得到:
abcd
d
最后:ab
当然,我发现我没有足够远地迭代节点以获得“c”节点。我玩了很长时间的循环,无法解决这个问题。
【问题讨论】:
标签: python-2.7 python-3.x list loops nodes