def remove(lst,value):
curr = lst.head
while not isinstance(curr, EmptyNode):
if curr.data == value:
curr.data=curr.nxt.data
curr.nxt =curr.data.nxt
lst.size -= 1
return lst
curr = curr.nxt
return True
return False
該函數應該刪除給定的值,並返回一個布爾值(True)。例如,如果我輸入:Python鏈接列表,刪除函數iter
remove(lstA, 'b')
它應該返回True,但是當我運行我的程序,它給我這個錯誤消息:
curr.nxt =curr.data.nxt
AttributeError: 'str' object has no attribute 'nxt'
任何一個小提示,將不勝感激
以及我嘗試你說的是否cure.next.data ==值:,似乎是工作是什麼,但它不是<在0x30e3930 __ __爲主。MYLIST對象>輸出布爾值,它被輸出。 – user3408174
'<__main __。0x30e3930的MyList對象>'意味着正在執行'if'塊中的'return lst'。檢查我的觀點1,爲什麼你的代碼不會返回'True' – shaktimaan
ohh,我看到所以只需將lst更改爲True即可,但如果我想從列表中刪除一個元素,那麼該元素不存在?它應該返回False,但對於我的代碼,它不會返回任何內容 – user3408174