Python 更改链接列表(节点链)中最后找到的目标值
我试图找出如何将链接列表中最后找到的目标值更改为替换值。例如,如果您有一个链接列表,如Python 更改链接列表(节点链)中最后找到的目标值,python,python-3.6,Python,Python 3.6,我试图找出如何将链接列表中最后找到的目标值更改为替换值。例如,如果您有一个链接列表,如 [1,'next'],[2,'next'],[3,next'],[2,none] 如何仅替换最后2个,而不是全部或第一个?这是我目前拥有的代码 walker = node_chain if node_chain is None: return None elif walker['data'] == target_val and walker['next'] is None: walker =
[1,'next'],[2,'next'],[3,next'],[2,none]
如何仅替换最后2个,而不是全部或第一个?这是我目前拥有的代码
walker = node_chain
if node_chain is None:
return None
elif walker['data'] == target_val and walker['next'] is None:
walker = node.set_data(walker, replacement_val)
return walker
else:
while walker['next'] is not None:
if walker['data'] == target_val:
node_chain = node.set_data(walker, replacement_val)
return node_chain
walker = node.get_next(walker)
if walker['next'] is None and walker['data'] == target_val:
walker = node.set_data(walker, replacement_val)
return walker
因此,在给定的代码中,如果目标值为2,替换值为4,它将返回
[1,'next'],[4,'next'],[3,next'],[2,none]
而不是我想要的回报
[1,'next'],[2,'next'],[3,next'],[4,无]
提前谢谢你
walker = node_chain
target_node = None
if node_chain is None:
return None
else:
while walker is not None:
if walker['data'] == target_val:
target_node = walker
walker = node.get_next(walker)
if target_node != None
node_chain = node.set_data(target_node, replacement_val)
你应该这样做。我不确定这是否有效,因为我没有你的其他函数,但这应该给你一个大致的想法初始化第二个变量以存储目标值的最后位置。只要正常地遍历链表,只要找到目标值,就更新第二个变量。遍历完列表后,只需更新存储在第二个变量中的节点