FAQ: Linked Lists: Python - Linked List Implementation I

This community-built FAQ covers the “Linked List Implementation I” exercise from the lesson “Linked Lists: Python”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Computer Science

Linear Data Structures

FAQs on the exercise Linked List Implementation I

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

Hello,

Can somebody please explain the logic of the solution for step 1?
class LinkedList:
def init(self, value=None):
self.head_node = Node(value)

Why is it correct like this if head_node is not an argument of init()? Moreover, why is self.value = value mentioned?

My code was:
class LinkedList:
def init(self, value=None, head_node):
self.value = value
self.head_node = Node(value)

It didn’t work because I put head_node as an argument for init(). I would appreciate a clear answer so many thanks in advance!

3 Likes

i am facing the same question bro … have you figured it out?

self.head_node = Node(value)

what is the meaning of this line?

1 Like

I am confused by this line of code as well…

As we all read before coming to this lesson, linked lists are composed of nodes. The line you guys mention self.head_node = Node(value) means that our LinkedList instance is also the head node of a linked list.

Let’s say we create an instance of the LinkedList class:

hello = LinkedList(5)

our new LinkedList instance object hello will have a self.value of 5, and will also be a head_node, which will be Node(5). Remember w/e you put into the __init__ method will happen when you create an object.

You can test putting these lines at the end of your code:

hello = LinkedList(5)
print(hello.value)
print(hello.head_node.value)
print(hello.head_node)

first and second print should return 5; the third one will tell you that it’s a .Node object. In few words: hello is LinkedList(5) and also a head_node whose value is 5, or Node(5)

4 Likes

Also came here seeking the answer to this question.

You set the self.head_node = Node(value), to be able to reach the methods of the Node class by using self.head_node

2 Likes

It means that, within the class LinkedList, we are setting the instance attribute (which we call head_node) equal to an instance of the class Node with data equal to “value”.

This question is for the page right after because I could not find the exact forum page for it (https://www.codecademy.com/courses/linear-data-structures/lessons/learn-linked-lists-python/exercises/linked-lists-python-list-ii)

Why does this while loop construction not work as intended?

def stringify_list(self):
    value_holder = ''
    node = self.get_head_node()
    while node.get_next_node() != None:
      value_holder = value_holder + '\n' + str(node.get_value())
      node = node.get_next_node()
    return value_holder

Linked List is explained in a difficult way in Codecademy

Hey guys. About this part in task 1:
We want to be able to instantiate a LinkedListwith a head node, so.init()should takevalueas an argument. Make surevaluedefaults toNone if no value is provided.

Why would the default for value in the constructor be None? I thought linked lists always have a head node, so during instantiation of the linked list, shouldn’t it have a value for the head node by necessity?