def absorb_value(lnk, value):
""" (LinkedList, int) -> NoneType
>>> lnk = LinkedList()
>>> lnk.append(6)
>>> lnk.append(7)
>>> lnk.append(8)
>>> lnk.append(7)
>>> print(lnk.front)
6 -> 7 -> 8 -> 7 ->|
>>> absorb_value(lnk, 7)
>>> print(lnk.front)
6 -> 15 -> 7 ->|
>>> absorb_value(lnk, 6)
>>> print(lnk.front)
21 -> 7 ->|
"""
if lnk.front:
prev_node, cur_node = None, lnk.front
while cur_node and not cur_node.value == value:
prev_node = cur_node
cur_node = cur_node.next_
if cur_node and cur_node.next_:
cur_node.next_.value += value
if prev_node:
prev_node.next_ = cur_node.next_
else:
lnk.front = cur_node.next_
lnk.size -= 1
else:
pass
else:
pass
Il ya une solution que j'ai, je comprends la plupart des codes, mais je ne sais pas comment il a changé le lien d'origine.Confus au sujet des noeuds
prev_node.next_ = cur_node.next_
Ici, je ne comprends pas que la façon dont ce code fonctionne, il n'y a pas de code sur les lnk
, mais pourquoi lnk
pourrait être changé par elle?