Problem Tracker — Linked List¶
এই topic-এর working list, মোটামুটি easy → hard order-এ সাজানো। প্রতিটা row solve করার সাথে সাথে নিজের আলাদা note file হয়ে যায়; প্রতিটা full note ../../templates/ds-problem-note-template.md-এর 24-section template মেনে চলে — শুরু করার সময় template-টা list-এ দেওয়া note file-এ copy করে নাও। নিচের description গুলো আমাদের নিজেদের ভাষায়; official statement link-এর পেছনে।
এই tracker কীভাবে ব্যবহার করবে:
- Problem 1–3 হলো non-negotiable muscle memory: চোখ বন্ধ করে লিখতে না পারা পর্যন্ত আবার আবার করো।
Statusupdate করো: planned → attempted → solved → reviewed।- Code লেখার আগে "Inherits from" বাক্যটা মুখে বলো — এটা সঠিক pattern-টা মাথায় জাগিয়ে দেয়।
- Note file column-এ link থাকা মানে সেই note লেখা হয়ে গেছে — click করে পড়ো। Plain text মানে note এখনো লেখা হয়নি (পরে আসবে)।
| # | Problem | Difficulty | Source | Pattern | Inherits from | Note file | Status |
|---|---|---|---|---|---|---|---|
| 1 | একটা list-এর সব arrow উল্টে দাও (reverse করো) | Easy | LeetCode 206 | In-place reversal | Insert-at-head, বারবার করা | 001-reverse-linked-list.md | planned |
| 2 | দুটো sorted chain-কে একটা sorted chain-এ zip করো | Easy | LeetCode 21 | Merge + dummy head | ../../02-arrays-and-strings/-এর two-pointer merge | 002-merge-two-sorted-lists.md | planned |
| 3 | এই chain-টা কি চিরকাল ঘুরতে থাকে? | Easy | LeetCode 141 | Slow/fast pointers | Traversal, দুই speed-এ দুবার চালানো | 003-linked-list-cycle.md | planned |
| 4 | এক pass-এ middle node-টা খোঁজো | Easy | LeetCode 876 | Slow/fast pointers | Cycle-check-এর skeleton (problem 3) | 004-middle-of-list.md | planned |
| 5 | Sorted list-এ পরপর সমান value-র run গুলো ভেঙে দাও | Easy | LeetCode 83 | Pointer rewiring | Delete-after-node operation | 005-remove-duplicates-sorted-list.md | planned |
| 6 | একটা নির্দিষ্ট value ধরে রাখা প্রতিটা node সরাও | Easy | LeetCode 203 | Dummy head | Delete-by-value + dummy head-কে un-special বানায় | 006-remove-elements.md | planned |
| 7 | শুধু সেই node-টা হাতে পেয়ে সেটাকেই delete করো | Easy | LeetCode 237 | Value-copy trick | Bypass deletion, উল্টো করে | 007-delete-given-node.md | planned |
| 8 | দুটো chain প্রথম কোথায় একটা node share করে? | Easy | LeetCode 160 | Two pointers, path switching | Runner/gap thinking | 008-intersection-of-lists.md | planned |
| 9 | শেষ থেকে nth node-টা এক pass-এ delete করো | Medium | LeetCode 19 | Runner + dummy | Slow/fast, speed ratio-র বদলে একটা fixed gap নিয়ে | 009-remove-nth-from-end.md | planned |
| 10 | উল্টো digit chain হিসেবে রাখা দুটো সংখ্যা যোগ করো | Medium | LeetCode 2 | Dummy head + carry | Merge skeleton + স্কুলের যোগ (math fundamentals) | 010-add-two-numbers.md | planned |
| 11 | Cycle যেখানে শুরু সেই node-টা খোঁজো | Medium | LeetCode 142 | Floyd's phase 2 | Cycle detection (problem 3) + distance algebra | 011-cycle-start.md | planned |
| 12 | প্রতি দুটো পাশাপাশি node swap করো | Medium | LeetCode 24 | Rewiring + dummy | Insert-after-এর ordering rule, দ্বিগুণ করে | 012-swap-pairs.md | planned |
| 13 | শুধু position left..right reverse করো | Medium | LeetCode 92 | Segmented reversal | Full reversal (problem 1) + সাবধানে boundary সেলাই | 013-reverse-sublist.md | planned |
| 14 | List-টা কি palindrome, O(1) space ব্যবহার করে? | Medium | LeetCode 234 | Middle + reverse-half combo | Problem 1 আর 4 জোড়া লাগিয়ে | 014-palindrome-list.md | planned |
| 15 | List-টা ভাঁজ করো: L0, Ln, L1, Ln-1, ... | Medium | LeetCode 143 | Middle + reverse + merge combo | Problem 1, 2, 4 — triple combo | 015-reorder-list.md | planned |
| 16 | List-টা ডানে k ঘর rotate করো | Medium | LeetCode 61 | Runner / close-the-ring | Runner gap (problem 9) + modular k (math fundamentals) | 016-rotate-list.md | planned |
| 17 | একটা linked list O(n log n)-এ sort করো | Medium | LeetCode 148 | Merge sort on chains | Middle দিয়ে split (4) + merge (2), recursively | 017-sort-list.md | planned |
| 18 | Random pointer-ওয়ালা list-এর deep-copy বানাও | Medium | LeetCode 138 | Interleaving / hash map | Rewiring discipline + map-as-memory | 018-copy-random-list.md | planned |
| 19 | k-টা sorted chain efficiently merge করো | Hard | LeetCode 23 | Merge + heap / divide & conquer | Problem 2 scale করা; heap-এর preview | 019-merge-k-lists.md | planned |
| 20 | List-টা একবারে k node করে reverse করো | Hard | LeetCode 25 | Segmented reversal | Problem 13 একটা loop-এ, group counting সহ | 020-reverse-k-group.md | planned |
| 21 | O(1) get/put-এর একটা LRU cache design করো | Hard | LeetCode 146 | Doubly linked list + hash map | এই chapter-এর সবকিছু + hash maps | 021-lru-cache.md | planned |