Practice Arena

Python Coding Challenges

Write real Python in the browser. Instant feedback. From beginner to expert.

925 challenges 556 easy 323 medium 46 hard
OOP & Classes medium

Linked list reversal

Implement a singly linked list and a function to reverse it in place.

linked-list OOP pointers
+28 pts 25m
Data Structures & Algorithms medium

Design Front Middle Back Queue

Implement a data structure that supports push/pop at front, middle, and back of a queue.

queue deque data-structures
+25 pts 30m
Data Structures & Algorithms medium

Delete Middle Node

Implement a function that deletes a given non-tail node from a singly linked list in O(1) time.

linked-list pointer in-place
+12 pts 15m
Data Structures & Algorithms medium

Design Skip List Lite

Implement a simplified skip list supporting insert, search, and delete with O(log n) average complexity.

skip-list linked-list search
+30 pts 30m
Linked Lists easy

Count nodes in a linked list

Return how many values appear in the list (one per node).

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Read the head node value

Return the first value or None when the list is empty.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Read the tail node value

Return the last value or None when the list is empty.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Reverse a linked list copy

Return a new list with node values in reverse order without mutating the input.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Concatenate two linked lists

Append the second list's nodes after the first and return a new list.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Value at index n

Return the value at zero-based index n or None if out of range.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Middle node index

Return the floor middle index for a non-empty list.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Sum all node values

Add every integer payload in the list.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Maximum node value

Return the largest integer or None when empty.

linked-list lists pointers
+10 pts 12m
Linked Lists easy

Remove the head node

Return a new list without the first node.

linked-list lists pointers
+10 pts 12m
Linked Lists medium

Prepend a new head

Insert value at the front of the list.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Append a new tail

Add value after the last node.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Palindrome linked values

Check whether values read the same forwards and backwards.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Rotate list left by k

Move the first k nodes to the end (k may exceed length; use modulo).

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Merge two sorted lists

Merge two ascending integer lists into one sorted list.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Remove duplicate values

Keep first occurrence of each value while preserving order.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Pairwise sum of adjacent nodes

Sum each adjacent pair; keep a lone last node as-is.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Count nodes equal to target

Count how many times target appears in the list.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Zip two linked lists

Interleave values from a and b until both are exhausted.

linked-list lists pointers
+22 pts 20m
Linked Lists medium

Split list at index

Return prefix and suffix tuples at index k.

linked-list lists pointers
+22 pts 20m

Showing 1–24 of 29 challenges

Guide: free Python coding challenges

Practice Python by solving problems

PythonSkillset challenges are hands-on coding exercises from beginner to advanced. Open a challenge, read the problem, write Python in the split-pane editor, and run tests with Pyodide — no install required.

How to use the arena

  1. Pick a category — basics, algorithms, strings, and more
  2. Open a challenge, read the statement, and edit the starter code
  3. Run tests, fix failures, then try a related quiz or tutorial lesson

Challenges vs tutorials and quizzes

Challenges test what you can build under constraints. For guided teaching, use our Python tutorials. For quick checks, try quizzes or copy snippets from code samples.