This community-built FAQ covers the “Swap Elements in a Linked List” code challenge in Python. You can find that challenge here, or pick any challenge you like from our list.
Top Discussions on the Python challenge Swap Elements in a Linked List
There are currently no frequently asked questions or top answers associated with this challenge – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this challenge. Ask a question or post a solution by clicking reply () below.
If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this challenge, 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 () below!
You can also find further discussion and get answers to your questions over in #get-help.
Agree with a comment or answer? Like () to up-vote the contribution!
Need broader help or resources? Head to #get-help and #community:tips-and-resources. If you are wanting feedback or inspiration for a project, check out #project.
Looking for motivation to keep learning? Join our wider discussions in #community
Learn more about how to use this guide.
Found a bug? Report it online, or post in #community:Codecademy-Bug-Reporting
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!
I made a generator function to have an iterator through the nodes of the linked list first.
Swapping the nodes themselves proved too unwieldy, so I just swapped their
from LinkedList import *
# generator function for iterating through all nodes
current = head_node
while hasattr(current, "next") and current.next is not None:
current = current.next
def swap_nodes(input_list, val1, val2):
have_node1 = False
have_node2 = False
previous = None
for node in linked_list_iterator(input_list):
if (not have_node1) and (node.data == val1):
node1 = node
previous1 = previous
have_node1 = True
elif (not have_node2) and (node.data == val2):
node2 = node
previous2 = previous
have_node2 = True
elif (have_node1 and have_node2):
previous = node
# swap data
temp_data = node1.data
node1.data = node2.data
node2.data = temp_data
demo_list = make_linked_list([1, 2, 3, 4, 5, 6])
swap_nodes(demo_list, 2, 5)