我正在创建自己的linkedList实现,并以某种方式一次删除了两个节点。我不懂为什么。我尝试删除不同的整数,似乎真的很想删除列表中的第二个条目。
当我不使用delete方法时,列表会正确遍历。这使我相信我删除的错误。我正在跟踪previousQuestion = () => {
this.setState({ currentQuestionId: this.state.previousQuestionId }))
}
各种不同的上一个节点。
previousQuestion
答案 0 :(得分:1)
delete
方法应这样实现:
def delete(self, data):
prev = None
temp = self.head
while temp is not None:
if temp.data == data:
if prev is None: # Handle the case when we are deleting the head which has no previous node
self.head = self.head.next
else:
prev.next = temp.next
break
prev = temp
temp = temp.next
由于这是一个单链列表,因此您需要跟踪目标之前的节点,并删除将前一个节点的next
指针设置为next
指针的手段删除要删除的节点,从而使所选节点消失。