Unit

Data Structure and Algorithm II

Master Key Data Structures: Linked Lists, Queues, Stacks and Hash Table through curated LeetCode problem solving.
Linked List
Stack
Queue
Hash Table

Duration

4 weeks

random shape
thumbnail image

Introduction

Welcome to Data Structures and Algorithms II, where you’ll build a rock-solid foundation in four essential data structures: Linked Lists, Queues, Stacks, and Hash Tables. This course is designed to transform abstract concepts into practical problem-solving skills through curated LeetCode problems that mirror real-world coding interviews.

Prerequisites

  • Complete Data Structure and Algorithm I Unit.

Skills Covered

In this unit, we are going to cover the following topics.
  • Linked Lists: Traversal, reversal, merging, and cycle detection.
  • Queues & Stacks: Implementations, applications, and classic problems.
  • Hash Tables: Efficient lookups, collision handling, and real-world use cases.

Recommended Study Material

Linked list
This video explains the linked list data structure and its implementation.
Linked List
Data Structure

Duration:

1 hour

Stacks and Queues
This video explains the Stack and Queue data structure and its implementation.
Stack
Queue
Data Structure

Duration:

1 hour

Hash Tables
This video explains the Hash Table data structure and its implementation.
Hash Table
Data Structure

Duration:

1 hour

Practice Problems

StatusBookmarkProblemDifficultyTagsSolution
Reverse Linked ListEasy
Linked List CycleEasy
Intersection of Two Linked ListsEasy
Merge Two Sorted ListsEasy
Remove Duplicates from Sorted ListEasy
Middle of the Linked ListEasy
Linked List Cycle IIMedium
Reverse Linked List IIMedium
Design Linked ListMedium
Insertion Sort ListMedium
Remove Duplicates from Sorted List IIMedium
Remove Nth Node From End of ListMedium
Copy List with Random PointerMedium
Add Two NumbersMedium
Flatten a Multilevel Doubly Linked ListMedium
Design Browser HistoryMedium
Merge k Sorted ListsHard
Reverse Nodes in k-GroupHard
Baseball GameEasy
Valid ParenthesesEasy
Implement Queue using StacksEasy
Remove All Adjacent Duplicates In StringEasy
Min StackMedium
Evaluate Reverse Polish NotationMedium
Generate ParenthesesMedium
Asteroid CollisionMedium
132 PatternMedium
Daily TemperaturesMedium
Simplify PathMedium
Online Stock SpanMedium
Car FleetMedium
Basic CalculatorMedium
Basic Calculator IIMedium
Maximum Frequency StackHard
Longest Valid ParenthesesHard
Largest Rectangle in HistogramHard
Number of Visible People in a QueueHard
Number of Students Unable to Eat LunchEasy
Implement Stack using QueuesEasy
Number of Recent CallsEasy
Time Needed to Buy TicketsEasy
Design Circular QueueMedium
Design Circular DequeMedium
Reveal Cards In Increasing OrderMedium
Longest Continuous Subarray With Absolute Diff Less Than or Equal to LimitMedium
Design Circular QueueMedium
Jump Game VIMedium
Sliding Window MaximumHard
Max Value of EquationHard
Contains DuplicateEasy
Valid AnagramEasy
Merge Similar ItemsEasy
Two SumEasy
Verifying an Alien DictionaryEasy
Design HashSetMedium
Longest Consecutive SequenceMedium
Design HashMapMedium
3SumMedium
4SumMedium
Group AnagramsMedium
Implement Router*Medium
Set Matrix ZeroesMedium
Longest Consecutive SequenceMedium
Time Based Key-Value StoreMedium
Encode and Decode TinyURLMedium
Number of Good Ways to Split a StringMedium
Number of Matching SubsequencesMedium
Time Based Key-Value StoreMedium
Snapshot ArrayMedium
Insert Delete GetRandom O(1)Medium
LRU CacheMedium
LFU CacheHard

Credit

The problem set is carefully curated from Neetcode and AlgoMaster, supplemented with additional practice questions for comprehensive coverage.

Contributor(s)

John Doe

Founder and Fullstack Developer at freeCodeProject.org

Created this Unit with curated list of questions for practice.