LinkedList删除功能正在删除2个节点

时间:2019-12-29 23:32:52

标签: python singly-linked-list

我正在创建自己的linkedList实现,并以某种方式一次删除了两个节点。我不懂为什么。我尝试删除不同的整数,似乎真的很想删除列表中的第二个条目。

当我不使用delete方法时,列表会正确遍历。这使我相信我删除的错误。我正在跟踪previousQuestion = () => { this.setState({ currentQuestionId: this.state.previousQuestionId })) } 各种不同的上一个节点。

previousQuestion

1 个答案:

答案 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指针的手段删除要删除的节点,从而使所选节点消失。