3.2 Dummy Node Technique
চিনবেন কীভাবে
head বদলাতে পারে এমন insert/delete/merge — dummy বানিয়ে
dummy.next রিটার্ন করলে head-এর special case উধাওDemo · approach · কোড — আগে নিজে চেষ্টা, আটকালে খুলুন
Demo: Merge Two Sorted Lists — LC 21 (Easy — Amazon/Meta/Google High)
Statement (Demo): দুটো sorted linked list list1 ও list2-এর head দেওয়া — দুটোকে একটা sorted linked list-এ merge করে তার head return করুন।
উদাহরণ: list1=[1,2,4], list2=[1,3,4] → [1,1,2,3,4,4] | ⚡ n,m ≤ 50
Approach: dummy থেকে tail চালান; দুই লিস্টের ছোট নোডটা tail-এ জুড়ুন। একটা শেষ হলে অন্যটার বাকি অংশ সরাসরি জুড়ে দিন।
function mergeTwoLists(a, b) {
const dummy = { next: null };
let tail = dummy;
while (a && b) {
if (a.val <= b.val) {
tail.next = a;
a = a.next;
} else {
tail.next = b;
b = b.next;
}
tail = tail.next;
}
tail.next = a || b;
return dummy.next;
}
Complexity: Time O(m+n), Space O(1)
প্রবলেম
- Swap Nodes in Pairsplan · দিন ০৩২LC 24(recursion দিয়েও সুন্দর হয়)
Statement: linked list-এর
headদেওয়া — প্রতি দুটো node swap করুন (node-এর value নয়, pointer change করুন)।
উদাহরণ:[1,2,3,4]→[2,1,4,3]| ⚡n ≤ 100নোট · ফাঁকা