我有两个a类节点和一个链接的。我的错误来自linkedList class
中的append方法
我试着.append(10)
但是当它应该附加到末尾时,它不会只打印10。碰巧有人看到错误了吗
class Node:
def __init__(self, data):
self.data = data
self.next = None
class linkedList:
def __init__(self):
self.head = None
def append(self, data):
newNode = Node(data)
if self.head == None:
self.head = newNode
return
else:
lastNode = self.head
while lastNode.next != None:
lastNode = lastNode.next
lastNode.next = newNode
def prepend(self, data):
newNode = Node(data)
if self.head == None:
self.head = newNode
return
else:
newNode.next = self.head
self.head = newNode
def insertAfterNode(self, prevNode, data):
newNode = Node(data)
newNode.next = prevNode.next
prevNode.next = newNode
def printList(self):
curNode = self.head
while curNode.next != None:
print(curNode.data)
curNode = curNode.next
def deleteNode(self, key):
curNode = self.head
if curNode != None and curNode.data == key:
self.head = curNode.next
curNode = None
return
else:
prev = None
while curNode != None and curNode.data != key:
prev = curNode
curNode = curNode.next
if curNode == None:
print("The data is not found in the list")
return
else:
prev.next = curNode.next
curNode = None
# Testing the Linked List
linkedLst = linkedList()
linkedLst.append(5)
linkedLst.append(10)
linkedLst.printList()
linkedLst.prepend(15)
linkedLst.printList()
linkedLst.insertAfterNode(linkedLst.head.next, 6)
linkedLst.insertAfterNode(linkedLst.head.next.next, 8)
linkedLst.printList()
linkedLst.deleteNode(6)
linkedLst.deleteNode(20)
linkedLst.printList()
预期的结果应该是5 10, 15 5 10, 15 6 8 5 10, 15 8 5 10
,然后出现一条错误消息,说明无法删除它。
但是,我得到了5, 15 5, 15 6 8 5, 15 8 5
,它排除了10.
我在vim上运行并且有python3.7.4
如果查看方法
printList
,while循环在curNode.next
是None
时停止,而curNode
是最后一个节点。最后一个节点没有得到要打印的更改。元素10就在那里,只是没印出来另外,还有一件小事,在类名中使用大写词是一种很好的做法,这样您的代码就可以与recommended style guide保持一致
相关问题 更多 >
编程相关推荐