Error in removing the end of a list

Asked

Viewed 20 times

0

esta dando erro no setProx(None) alguem pode ajudar ?

  def removeFinal(self):
    if self.isEmpty():
        print("Impossivel Remover Lista Vazia")
        ultimoValorNo = self.ultimoNo.getElemento()
    if self.primeiroNo is self.ultimoNo:
        self.primeiroNo = self.ultimoNo = None
    else:
        noAtual = self.primeiroNo
        while noAtual.getProx() != self.ultimoNo:
            noAtual = noAtual.getProx()
            noAtual.setProx(None)
            self.ultimoNo = noAtual
    return ultimoValorNo

1 answer

2

Is this a correct chained list? The indentation is incorrect, notice that on Else you are performing the deletion even if the condition noAtual.getProx() != self.ultimoNo be true.

def removeFinal(self):
  if self.isEmpty():
      print("Impossivel Remover Lista Vazia")
      ultimoValorNo = self.ultimoNo.getElemento()
  if self.primeiroNo is self.ultimoNo:
      self.primeiroNo = self.ultimoNo = None
  else:
      noAtual = self.primeiroNo
      while noAtual.getProx() != self.ultimoNo:
          noAtual = noAtual.getProx()
      noAtual.setProx(None)
      self.ultimoNo = noAtual
  return ultimoValorNo

Browser other questions tagged

You are not signed in. Login or sign up in order to post.