Node question

current_node == new_node. When they are comparing, are they comparing the value they hold?

Yes. The node is a conceptual thing; the value is actual.

if they’re not nodes they should probably not be named nodes

Yes they are nodes. They are given to me in a form of a question.

Then when current_node = None, what is being altered? Is it the vale it holds? I thought the values are immutable.

to compare two nodes you can’t just compare their values you have to compare their links as well since that is part of a node

if you want to compare their values compare their values, not themselves

the default implementation of __eq__ for objects is identity

assigning a variable doesn’t alter the previous value, it alters the variable and nothing else

your values are probably not immutable. you might mean that the values can’t be replaced, but that would still leave the values themselves mutable, and furthermore you’ve probably not done this in a way that actually prevents modification, nor is that something that is required to be considered a linked list

All there really is to know about linked list is this.

You have cells. Nodes.

A node does two things.
It holds on to a value.
It knows about the next value.
(It might also know about the previous value in the case of a doubly linked list, allowing traversal in both directions)

from that you can figure out all of the rest. operations are just about re-arranging the links in the structure.

you can for example implement this using python’s list. a node holds on to two things, so a node is a list of size 2.

[5, [7, [8, [3, [1, None]]]]]

You can also make your own class for a node. This would do the same thing. Hold on to two things.

class Node:
    value
    tail