This directory contains comprehensive implementations of linked list data structures and algorithms in JavaScript with multiple ES6+ approaches for each problem.
- Basic - Fundamental linked list operations (GeeksforGeeks problems)
- Find the Middle of a Linked List
- Reverse a Linked List
- Detect Loop in a Linked List
- Moderate - Intermediate linked list problems (LeetCode Hard)
- Merge k Sorted Lists
- Reverse Nodes in k-Group
- Copy List with Random Pointer
- Advanced - Challenging linked list variants (LeetCode Hard variants)
- Merge k Sorted Lists with Custom Comparator
- Reverse Nodes in k-Group with Custom Reversal Logic
- Copy List with Random Pointer and Metadata
All implementations use modern ES6+ JavaScript features:
- Arrow functions
- Destructuring
- Spread operator
- Classes for node definitions
- Map and Set data structures
- Functional programming patterns
- Generator functions for algorithm visualization
- Performance testing utilities
Each problem is solved with multiple approaches showcasing different algorithms and JavaScript patterns:
- Iterative solutions
- Recursive solutions
- Stack-based approaches
- Functional programming approaches
- Two-pointer techniques
- Generator functions for step-by-step visualization
- Performance comparison utilities
Each solution includes comprehensive test cases and performance comparisons. Run any solution file directly with Node.js to see test results:
# Basic level
node basic/answer1.js
node basic/answer2.js
node basic/answer3.js
# Moderate level
node moderate/answer1.js
node moderate/answer2.js
node moderate/answer3.js
# Advanced level
node advanced/answer1.js
node advanced/answer2.js
node advanced/answer3.js✅ All 9 linked list problems (3 basic, 3 moderate, 3 advanced) have been implemented with multiple ES6+ approaches ✅ Each problem includes comprehensive documentation and test cases ✅ Performance testing utilities are included for comparing approaches ✅ Generator functions provide step-by-step visualization of algorithms ✅ All implementations follow modern JavaScript best practices and idioms