FAQ: Technical Interview Problems in Python: Linked Lists - Remove Duplicates

This community-built FAQ covers the “Remove Duplicates” exercise from the lesson “Technical Interview Problems in Python: Linked Lists”.

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

Technical Interview Practice: Python

FAQs on the exercise Remove Duplicates

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!

Not sure what’s going on but this page (lesson) seems locked up. When I click on Save/Run the icon just keeps spinning and never finishes. This has been going on now for 24 hours.

It does appear to be the script of mine linked_list.py. I would first suspect the while loop. I’m just not sure why its hanging.

	def remove_duplicates(self):
		#Store a reference to the head node
		current_node = self.head

		#Check if there a .next node an that .next node contain the same values as the current node
		# remove the duplicate by reassigning the .next property of the current node.
		while current_node:
			while current_node.next and current_node.next.val == current_node.val:
				current_node.next = current_node.next.next

		current_node = current_node.next
		return self

EDIT
Indention got me, fixed.

	def remove_duplicates(self):
		#Store a reference to the head node
		current_node = self.head

		#Check if there a .next node an that .next node contain the same values as the current node
		# remove the duplicate by reassigning the .next property of the current node.
		while current_node:
			while current_node.next and current_node.next.val == current_node.val:
				current_node.next = current_node.next.next
			current_node = current_node.next
		return self

Hi,

hat happen because of an infinite loop probably… have to refresh the browser and fix the code.

I created a different solution to remove duplicated using only one loop:

My solution
def remove_duplicates(self):
    previous_node = self.head
    current_node = self.head.next
    
    # traverse to the end:
    while current_node:
      # check if the value is unique:
      value = current_node.val
      if value == previous_node.val:
        # this value is duplicated; remove node:
        previous_node.next = current_node.next
      else:
        # unique value; refresh the previous node
        previous_node = current_node
      
      # move to the next node:
      current_node = current_node.next
      
    return self
1 Like