# Two Pointers Moving in Parallel

please kindly help advise , under the function def nth_last_node , since we defined current = None , to my understanding , since i dont see there is no anyother code about “current” , so current will be always “None”. so the else will never be executed since “if current is None” will always be executed.

``````from LinkedList import LinkedList

# Complete this function:
current = None
count = 1
while tail_seeker:
tail_seeker = tail_seeker.get_next_node()
count += 1
if count >= n + 1:
if current is None:
else:
current = current.get_next_node()
return current

for i in range(50, 0, -1):

# Use this to test your code:
print(test_list.stringify_list())
nth_last = nth_last_node(test_list, 4)
print(nth_last.value)
``````

there’s stuff changing that value of `current` later in the function (inside the while loop).

but as i said since we initiate the value of current as none , “else” in loop will be never executed .

ok …

``````      if current is None:
else:
current = current.get_next_node()
``````

consider … `current` starts out being `None`,
so the stuff in the block after
`if current is None:`
runs;
so
the next thing to run is
`current = linked_list.head_node`
and `linked_list.head_node` is not `None`
so,
after this line runs,
`current` is not `None` anymore
in that iteration of the loop.
there’s nothing else to change the value of current in the loop,
so on the next iteration of the loop,
the value of `current` is not `None` (it is the value from the `linked_list.head_node`);
so the `else`-block runs.

THANKS …i missed the contents in “if”.