Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Computer Science Introduction to Data Structures Building a Linked List Adding Nodes to a Linked List

In this video how is count updating when you add?

How is count updating every time he adds, in the constructor he sets .__count = 0, and that's it... does it have something to do with the double underscores?

This is the code I'm referring to...

class Node: """ An object for storing a single node in a linked list

Attributes:
    data: Data stored in node
    next_node: Reference to next node in linked list
"""

def __init__(self, data, next_node = None):
    self.data = data
    self.next_node = next_node

def __repr__(self):
    return "<Node data: %s>" % self.data

class SinglyLinkedList: """ Linear data structure that stores values in nodes. The list maintains a reference to the first node, also called head. Each node points to the next node in the list

Attributes:
    head: The head node of the list
"""

def __init__(self):
    self.head = None
    # Maintaining a count attribute allows for len() to be implemented in
    # constant time
    self.__count = 0

def is_empty(self):
    """
    Determines if the linked list is empty
    Takes O(1) time
    """

    return self.head is None

def __len__(self):
    """
    Returns the length of the linked list
    Takesn O(1) time
    """

    return self.__count

1 Answer

Steven Parker
Steven Parker
229,783 Points

This seems like a bug. You can report it to the staff as described on the Support page.

But also note that the code shown in the video (and in the project file download) is significantly different in that it both creates and increments "count" (with no underscores) in the "size" method.