शीर्ष 40 लिंक्ड लिस्ट इंटरव्यू प्रश्न और उत्तर (2026)

शीर्ष लिंक सूची साक्षात्कार प्रश्न और उत्तर

डेटा स्ट्रक्चर के इंटरव्यू की तैयारी के लिए चुनौतियों पर ध्यान केंद्रित करना आवश्यक है। लिंक्ड लिस्ट से संबंधित इंटरव्यू प्रश्न समस्या-समाधान की क्षमता, पॉइंटर लॉजिक, मेमोरी जागरूकता और उम्मीदवारों द्वारा जटिल परिस्थितियों में तर्क करने की क्षमता को उजागर करते हैं।

लिंक्ड लिस्ट में महारत हासिल करने से प्रोडक्ट टीमों, प्लेटफॉर्म और सिस्टम इंजीनियरिंग में विभिन्न भूमिकाएँ निभाने के अवसर खुलते हैं। व्यावहारिक अनुभव से मजबूत तकनीकी विशेषज्ञता, विश्लेषणात्मक सोच और स्वच्छ कोडिंग की आदतें विकसित होती हैं। फ्रेशर्स से लेकर वरिष्ठ पेशेवरों तक, यह कौशल वास्तविक डिबगिंग, प्रदर्शन विश्लेषण, कनिष्ठों को मार्गदर्शन देने और अनुभव से प्राप्त उन्नत अवधारणाओं का उपयोग करके स्केलेबल समाधानों पर प्रबंधकों के साथ सहयोग करने में सहायक होता है।
अधिक पढ़ें…

👉 मुफ़्त PDF डाउनलोड करें: लिंक्ड लिस्ट इंटरव्यू प्रश्न और उत्तर

शीर्ष लिंक सूची साक्षात्कार प्रश्न और उत्तर

1) लिंक्ड लिस्ट क्या होती है और यह ऐरे से किस प्रकार भिन्न होती है, समझाइए।

A लिंक्ड सूची लिंक्ड लिस्ट एक रेखीय डेटा संरचना है जिसमें नोड्स नामक तत्व पॉइंटर या रेफरेंस का उपयोग करके आपस में जुड़े होते हैं। प्रत्येक नोड में डेटा और सूची में अगले नोड का पॉइंटर/रेफरेंस होता है। एरे के विपरीत, लिंक्ड लिस्ट में तत्व लगातार मेमोरी में संग्रहीत नहीं होते हैं।

लिंक्ड लिस्ट और ऐरे के बीच मुख्य अंतर:

Feature लिंक्ड सूची ऐरे
स्मृति आवंटन गतिशील स्थिर
तत्व अभिगम समय पर) ओ (1)
प्रविष्टि/विलोपन किसी भी पद पर कुशल महंगा (स्थानांतरण की आवश्यकता है)
मेमोरी ओवरहेड पॉइंटर्स के लिए अतिरिक्त स्थान कोई अतिरिक्त पॉइंटर ओवरहेड नहीं

संक्षेप में, लिंक्ड लिस्ट में पॉइंटर्स के कारण धीमी रैंडम एक्सेस और अतिरिक्त मेमोरी ओवरहेड के बदले तेज इंसर्शन और डायनामिक साइजिंग की सुविधा मिलती है।


2) लिंक्ड लिस्ट के विभिन्न प्रकार क्या हैं?

वहां कई प्रकार की लिंक्ड सूचियाँऔर साक्षात्कारकर्ता अक्सर आपसे इनमें अंतर बताने के लिए कहते हैं:

  • एकल लिंक्ड लिस्ट: प्रत्येक नोड केवल अगले नोड को इंगित करता है।
  • दोहरी लिंक सूची: नोड्स में दो संकेतकएक नोड से अगले नोड तक और एक नोड से पिछले नोड तक।
  • वृत्ताकार लिंक्ड लिस्ट: अंतिम नोड वापस पहले नोड की ओर इंगित करता है, जिससे एक लूप बनता है।
  • दोहरी वृत्ताकार लिंक्ड लिस्ट: यह वृत्ताकार और दोहरे रूप से लिंक की गई सूचियों दोनों को जोड़ता है।

प्रत्येक प्रकार के उपयोग के मामले ट्रैवर्सल और मेमोरी आवश्यकताओं पर आधारित होते हैं। उदाहरण के लिए, डबली लिंक्ड लिस्ट अतिरिक्त पॉइंटर्स की कीमत पर आसान बैकवर्ड ट्रैवर्सल की अनुमति देती हैं।


3) आप सिंगली लिंक्ड लिस्ट को रिवर्स कैसे करते हैं? (कोडिंग विधि द्वारा)

Revलिंक्ड लिस्ट को उलटना एक क्लासिक इंटरव्यू प्रश्न है। इसका लक्ष्य पॉइंटर्स की दिशा को इस प्रकार बदलना है कि लिस्ट को बिना नए नोड्स आवंटित किए उसी स्थान पर उलट दिया जाए।

मुख्य विचार:
तीन बिंदुओं का उपयोग करें — prev, curr, तथा next और सूची में आगे बढ़ते रहें। प्रत्येक चरण पर, पुनर्निर्देशित करें। curr.next सेवा मेरे prevफिर सभी पॉइंटर्स को आगे बढ़ाएं।

ListNode reverseList(ListNode head) {
    ListNode prev = null;
    ListNode curr = head;
    while (curr != null) {
        ListNode next = curr.next;
        curr.next = prev;
        prev = curr;
        curr = next;
    }
    return prev; // New head
}

यह अतिरिक्त स्थान के बिना जुड़ी हुई संरचना को रूपांतरित करता है और चलता है पर) समय है.


4) लिंक्ड लिस्ट के मध्य बिंदु को ज्ञात करने के लिए दो-बिंदु तकनीक की व्याख्या कीजिए।

लिंक्ड लिस्ट के मध्य नोड को खोजने का सबसे कुशल तरीका दो पॉइंटर्स का उपयोग करना है:

  • A धीमा पॉइंटर यह एक समय में एक नोड को स्थानांतरित करता है।
  • A तेज़ पॉइंटर एक बार में दो नोड्स को स्थानांतरित करता है।

जब तेज़ पॉइंटर अंत तक पहुँच जाता है, तो धीमा पॉइंटर मध्य बिंदु पर होगा। यह तकनीक इस प्रकार काम करती है: पर) बिना अतिरिक्त स्थान के समय।


5) आप लिंक्ड लिस्ट में चक्र का पता कैसे लगाएंगे?

चक्र का पता लगाना एक और क्लासिक समस्या है। मानक समाधान का उपयोग करता है फ्लॉयड का कछुआ और खरगोश एल्गोरिदम:

  • चाल slow pointer एक समय में एक कदम।
  • चाल fast pointer एक बार में दो कदम।
  • यदि सूची में एक चक्र है, तो दोनों पॉइंटर आपस में मिल जाएंगे।

यदि तेज़ पॉइंटर पहुँच जाता है nullसूची में कोई चक्र नहीं है। यह विधि चलती है पर) समय और ओ (1) अंतरिक्ष.


6) लिंक्ड लिस्ट के क्या फायदे और नुकसान हैं?

लिंक्ड लिस्ट के कई फायदे और नुकसान हैं:

फायदे नुकसान
गतिशील आकार कोई यादृच्छिक पहुँच नहीं
आसानी से डालें/हटाएँ पॉइंटर्स के लिए अतिरिक्त मेमोरी
डेटा वृद्धि के लिए कुशल खराब कैश प्रदर्शन

गतिशील डेटा के लिए लिंक्ड लिस्ट अच्छा प्रदर्शन करती हैं, लेकिन तत्वों तक पहुँचने के लिए एरे की तुलना में धीमी हो सकती हैं क्योंकि प्रत्येक पहुँच के लिए शीर्ष से ट्रैवर्सल की आवश्यकता होती है।


7) आप दो क्रमबद्ध लिंक्ड सूचियों को कैसे मर्ज करते हैं?

दो क्रमबद्ध सूचियों को मिलाना एक और आम साक्षात्कार प्रश्न है। इसमें दोनों सूचियों को एक साथ देखना होता है और प्रत्येक चरण में दोनों सूचियों में से सबसे छोटे नोड का चयन करके एक नई क्रमबद्ध सूची बनानी होती है।

ListNode mergeTwoLists(ListNode l1, ListNode l2) {
    ListNode dummy = new ListNode(0);
    ListNode tail = dummy;
    while (l1 != null && l2 != null) {
        if (l1.val < l2.val) {
            tail.next = l1;
            l1 = l1.next;
        } else {
            tail.next = l2;
            l2 = l2.next;
        }
        tail = tail.next;
    }
    tail.next = (l1 != null) ? l1 : l2;
    return dummy.next;
}

यह विधि क्रमबद्धता को संरक्षित रखती है और चलती है O(n + m) n और m लंबाई की सूचियों के लिए समय।


8) लिंक्ड लिस्ट के अंत से Nवें नोड को हटाने का तरीका समझाइए।

सबसे कारगर तकनीक का उपयोग करता है दो संकेतक दो नोड्स के बीच n का फासला है। पहले पॉइंटर को n कदम आगे बढ़ाएं, फिर दोनों पॉइंटर्स को तब तक आगे बढ़ाएं जब तक कि पहला पॉइंटर अंत तक न पहुंच जाए। दूसरा पॉइंटर तब लक्ष्य नोड से ठीक पहले होगा।

इससे सूची की लंबाई की गणना अलग से करने की आवश्यकता नहीं होती है और प्रक्रिया पूरी हो जाती है। पर) समय। यह पहले नोड को हटाने जैसे विशिष्ट मामलों को भी संभालता है।


9) लिंक्ड लिस्ट में k-वें तत्व को एक्सेस करने की टाइम कॉम्प्लेक्सिटी क्या है?

तक पहुँचना kलिंक्ड लिस्ट में वें तत्व तक पहुँचने के लिए शीर्ष से लेकर अंतिम तत्व तक ट्रैवर्सल की आवश्यकता होती है। kवें नोड पर। क्योंकि लिंक्ड लिस्ट में कोई डायरेक्ट इंडेक्सिंग नहीं होती, इसलिए इसकी लागत आती है। पर) सबसे खराब स्थिति में लगने वाला समय।

इसके विपरीत, एरे में डायरेक्ट इंडेक्सिंग की सुविधा होती है। ओ (1) समय है.


10) आप ऐरे के बजाय लिंक्ड लिस्ट का उपयोग क्यों करेंगे?

लिंक्ड लिस्ट तब विशेष रूप से उपयोगी होती हैं जब:

  • आप मनमाने स्थानों पर बार-बार प्रविष्टियों के समावेशन और विलोपन की अपेक्षा करते हैं।
  • आपको अपने डेटा का आकार पहले से पता नहीं होता है।
  • मेमोरी विखंडन के कारण निरंतर मेमोरी आवंटन मुश्किल हो जाता है।

वे कुशल गतिशील मेमोरी आवंटन और सूची के अंत में या ज्ञात नोड संदर्भ के साथ स्थिर समय सम्मिलन/हटाने का समर्थन करते हैं - ऐसे फायदे जो एरे प्रदान नहीं कर सकते।


11) लिंक्ड लिस्ट के वास्तविक दुनिया में क्या अनुप्रयोग हैं?

लिंक्ड लिस्ट का व्यापक रूप से उन प्रणालियों में उपयोग किया जाता है जहां गतिशील स्मृति आवंटन, बार-बार सम्मिलनया, परिवर्तनीय आकार डेटा संरचनाएँ इनकी आवश्यकता होती है। इन्हें कंप्यूटर विज्ञान की कई मूलभूत अवधारणाओं और अनुप्रयोगों में लागू किया जाता है, जैसे कि:

  • गतिशील स्मृति प्रबंधन (ऑपरेटिंग सिस्टम में प्रयुक्त)
  • पूर्ववत करें/पुनः करें कार्यक्षमताएँ टेक्स्ट एडिटर्स में
  • हैश टेबल चेनिंग टकरावों को हल करने के लिए
  • संगीत या वीडियो प्लेलिस्ट नेविगेशन
  • ग्राफ आसन्नता प्रतिनिधित्व
  • बहुपद अंकगणितीय संक्रियाएँ

ये उदाहरण इस बात पर प्रकाश डालते हैं कि लिंक्ड लिस्ट किस प्रकार अनुक्रमों के लचीलेपन और कुशल हेरफेर की सुविधा प्रदान करती हैं, जबकि ऐरे का आकार बदलना महंगा साबित हो सकता है।


12) एकल और द्विबद्ध लिंक्ड लिस्ट के बीच अंतर स्पष्ट कीजिए।

Feature एकल रूप से लिंक की गई सूची डबल लिंक्ड लिस्ट
संकेत 1 (केवल अगला नोड) 2 (पिछला और अगला)
traversal केवल एक दिशा दोनों दिशाओं में
मेमोरी उपयोग Less (केवल एक पॉइंटर) अधिक (अतिरिक्त संकेत)
विलोपन अधिक कठिन (पिछले नोड की आवश्यकता है) आसान
उदाहरण उपयोग स्टैक कार्यान्वयन ब्राउज़र इतिहास नेविगेशन

A दोहरी लिंक्ड सूची यह अधिक बहुमुखी है लेकिन अतिरिक्त मेमोरी की खपत करता है। इसके विपरीत, एकल लिंक्ड सूचियाँ ये हल्के और एकतरफा आवागमन के लिए कुशल हैं।


13) सॉर्ट की गई लिंक्ड लिस्ट से डुप्लिकेट कैसे हटाए जाते हैं?

जब कोई लिंक्ड लिस्ट पहले से ही सॉर्ट की हुई होती है, तो डुप्लिकेट आइटम एक दूसरे के बगल में होंगे।

सूची में आगे बढ़ते हुए प्रत्येक नोड के डेटा की तुलना उसके अगले नोड के डेटा से करें। यदि डेटा मेल खाता है, तो अगले नोड को छोड़ दें।

void removeDuplicates(ListNode head) {
    ListNode current = head;
    while (current != null && current.next != null) {
        if (current.val == current.next.val) {
            current.next = current.next.next;
        } else {
            current = current.next;
        }
    }
}

जटिलता: O(n) समय और O(1) स्थान।

अव्यवस्थित सूचियों के लिए, देखे गए मानों को ट्रैक करने के लिए हैशसेट का उपयोग किया जा सकता है।


14) रैखिक और वृत्ताकार लिंक्ड लिस्ट में क्या अंतर है?

Feature लीनियर लिंक्ड लिस्ट सर्कुलर लिंक्ड लिस्ट
अंतिम नोड NULL की ओर इंगित करता है शीर्ष नोड की ओर इशारा करता है
traversal जब समाप्त होता है next == NULL निरंतर पारगमन
उदाहरण स्टैक, कतार राउंड-रॉबिन शेड्यूलिंग
जटिलता सरल अधिक जटिल हैंडलिंग

सीपीयू शेड्यूलिंग जैसे अनुप्रयोगों में चक्रीय सूचियाँ विशेष रूप से लाभदायक होती हैं, जहाँ प्रक्रियाओं को चक्रीय रूप से निष्पादित किया जाता है।


15) दो लिंक्ड लिस्ट के प्रतिच्छेदन बिंदु को आप कैसे ज्ञात करते हैं?

यह निर्धारित करने के लिए कि क्या दो एकल लिंक्ड सूचियाँ प्रतिच्छेद करती हैं:

  1. दोनों सूचियों की लंबाई ज्ञात कीजिए।
  2. सूची की लंबाई में अंतर के बराबर लंबी सूची के पॉइंटर को आगे बढ़ाएं।
  3. दोनों सूचियों को एक साथ तब तक पार करें जब तक कि नोड्स समान न हो जाएं।

वैकल्पिक रूप से, ए हैशसेट इसका उपयोग O(n) स्पेस के लिए विज़िट किए गए नोड्स को स्टोर करने के लिए किया जा सकता है।

यह दृष्टिकोण कारगर है और वरिष्ठ स्तर के साक्षात्कारों में अक्सर पूछा जाता है।


16) आप यह कैसे जांचते हैं कि दो लिंक्ड लिस्ट एक जैसी हैं या नहीं?

दो लिंक्ड लिस्ट समान होती हैं यदि:

  • उनमें नोड्स की संख्या समान है।
  • संबंधित नोड मान क्रम में समान हैं।

कलन विधि:

  1. दोनों सूचियों को एक साथ देखें।
  2. प्रत्येक नोड के डेटा की तुलना करें।
  3. यदि सभी जोड़े मेल खाते हैं और दोनों का मान NULL तक पहुँच जाता है, तो वे समान होते हैं।

समय जटिलता: पर)

स्थानिक जटिलता: ओ (1)


17) लिंक्ड लिस्ट के संदर्भ में मेमोरी लीक क्या है?

A स्मृति रिसाव ऐसा तब होता है जब गतिशील रूप से आवंटित नोड्स का उपयोग करने के बाद उन्हें मुक्त नहीं किया जाता है।

लिंक्ड सूचियों में, यदि delete or free() सूची से हटाए गए नोड्स पर यह फ़ंक्शन कॉल नहीं किया जाता है, मेमोरी तब भी कब्जे में रहती है जब वह अब पहुंच योग्य नहीं होती है।

उदाहरण के लिए, C/ में हटाए गए नोड्स को रिलीज़ करने में विफलताC++ इसके परिणामस्वरूप धीरे-धीरे मेमोरी खत्म हो जाती है, जिससे सिस्टम धीमा हो जाता है या क्रैश हो जाता है।

डिस्ट्रक्टर या स्पष्ट डीएलोकेशन का उपयोग करके उचित सफाई करने से इस समस्या से बचा जा सकता है।


18) लिंक्ड लिस्ट का उपयोग करके स्टैक को कैसे लागू किया जाए, समझाइए।

में धुआँराइसमें मौजूद तत्व LIFO (लास्ट इन, फर्स्ट आउट) क्रम का पालन करते हैं।

लिंक्ड लिस्ट आदर्श होती है क्योंकि इसमें प्रविष्टियाँ जोड़ना और हटाना शीर्ष पर कुशलतापूर्वक होता है।

Operaमाहौल:

  • धक्का दें: शीर्ष पर नया नोड डालें।
  • पॉप: हेड से नोड हटाएँ।
  • झांकना: हेड डेटा लौटाएँ।

लाभ:
निश्चित आकार के ऐरे की आवश्यकता नहीं है; तत्वों को जोड़ने पर यह गतिशील रूप से बढ़ता है।


19) लिंक्ड लिस्ट का उपयोग करके क्यू को कैसे कार्यान्वित किया जा सकता है?

में पंक्तिइसमें मौजूद तत्व FIFO (फर्स्ट इन, फर्स्ट आउट) क्रम का पालन करते हैं।

लिंक्ड लिस्ट का उपयोग वहां करें जहां:

  • एनक्यू (सम्मिलित करें): अंत में नोड जोड़ें।
  • डीक्यू (हटाएँ): हेड से नोड को हटा दें।

इससे दोनों ऑपरेशन संभव हो पाते हैं ओ (1) दो बिंदुओं के साथ समय — front और rear.

इसका उपयोग आमतौर पर प्रोसेस शेड्यूलिंग और प्रिंटर क्यू सिस्टम में किया जाता है।


20) ऐरे लिस्ट और लिंक्ड लिस्ट में क्या अंतर हैं? Java?

पहलू सारणी सूची लिंक्ड सूची
भंडारण गतिशील सरणी दोहरी लिंक्ड सूची
पहूंच समय ओ (1) पर)
सम्मिलित करें/हटाएँ मध्यम वर्ग में महंगा दोनों सिरों पर कुशल
मेमोरी ओवरहेड Less और भी (अतिरिक्त संकेत)
उदाहरण बार-बार पहुंच बार-बार सम्मिलन/हटाना

उदाहरण: उपयोग ArrayList लुकअप-हैवी ऑपरेशनों के लिए, और LinkedList जब सम्मिलन/हटाने की क्रियाएं हावी हों।


21) आप मल्टीलेवल लिंक्ड लिस्ट को कैसे समतल करते हैं?

A बहुस्तरीय लिंक्ड सूची इसमें ऐसे नोड्स हो सकते हैं जिनमें दोनों हों next और child पॉइंटर (प्रत्येक चाइल्ड एक अन्य लिंक्ड लिस्ट की ओर ले जाता है)। लक्ष्य सभी नोड्स को एक सिंगल-लेवल लिंक्ड लिस्ट में समतल करना है।

दृष्टिकोण:

  1. उपयोग धुआँरा or पुनरावर्ती फ़ंक्शन.
  2. शीर्ष नोड से शुरू करें।
  3. यदि किसी नोड में है childइसे धक्का दो next स्टैक में नोड जोड़ें, और बनाएं child as next.
  4. स्टैक खाली होने तक जारी रखें।

समय जटिलता: पर)

अंतरिक्ष जटिलता: पुनरावर्तन/स्टैक के लिए O(n)।

उदाहरण (अवधारणा के संदर्भ में):

1 - 2 - 3
    |
    4 - 5
Flattened → 1 → 2 → 4 → 5 → 3

यह प्रश्न रिकर्सन और पॉइंटर मैनिपुलेशन के बारे में आपकी समझ का मूल्यांकन करता है।


22) आप रैंडम पॉइंटर्स के साथ लिंक्ड लिस्ट को कैसे क्लोन करते हैं?

इस विशेष लिंक्ड लिस्ट के प्रत्येक नोड में दो पॉइंटर होते हैं:

  • next → अगले नोड की ओर इंगित करता है।
  • random → किसी भी मनमाने नोड को इंगित करता है।

एल्गोरिदम (3 चरण):

  1. क्लोन किए गए नोड्स को मूल नोड्स के बीच में डालें।
  2. क्लोनों के लिए यादृच्छिक पॉइंटर निर्दिष्ट करें (clone.random = original.random.next).
  3. दोनों सूचियों को अलग-अलग करें।

इससे हैश मैप के लिए अतिरिक्त स्थान की आवश्यकता नहीं होती है और यह सुचारू रूप से चलता है। पर) इसके साथ समय ओ (1) अतिरिक्त जगह।

उदाहरण: जटिल डेटा संरचनाओं (जैसे, ग्राफ़ या ऑब्जेक्ट संदर्भ) की डीप कॉपी करना।


23) स्किप लिस्ट क्या है, और यह लिंक्ड लिस्ट से कैसे संबंधित है?

A स्किप सूची यह एक स्तरित लिंक्ड लिस्ट संरचना है जो तीव्र खोज, सम्मिलन और विलोपन की अनुमति देती है (संतुलित वृक्षों के समान)।

Operaउत्पादन औसत समय सबसे खराब मामला
खोजें O (लॉग एन) पर)
सम्मिलित करें/हटाएँ O (लॉग एन) पर)

इसमें कई स्तर होते हैं, जहां ऊपरी स्तर कई नोड्स को "छोड़" देते हैं, जिससे खोज दक्षता में सुधार होता है।

उदाहरण: इसका उपयोग Redis जैसे डेटाबेस और समवर्ती मैप कार्यान्वयनों में किया जाता है।


24) आप लिंक्ड लिस्ट में पैलिंड्रोम का पता कैसे लगा सकते हैं?

एक लिंक्ड लिस्ट पैलिंड्रोम कहलाती है यदि उसे आगे और पीछे से पढ़ने पर एक समान ही पढ़ा जाए।

कलन विधि:

  1. सूची का मध्य बिंदु ज्ञात कीजिए।
  2. Revदूसरे भाग को उलट दें।
  3. दोनों हिस्सों की तुलना नोड दर नोड करें।

यदि सभी संगत नोड्स मेल खाते हैं, तो यह एक पैलिंड्रोम है।

उदाहरण:

1 → 2 → 3 → 2 → 1 → ✅ पैलिंड्रोम

1 → 2 → 3 → 4 → ❌ यह पैलिंड्रोम नहीं है

समय जटिलता: पर)

अंतरिक्ष जटिलता: ओ (1)


25) लिंक्ड लिस्ट में लूप को कैसे हटाया जाता है?

यदि कोई लूप मौजूद है (फ्लोयड के चक्र पहचान का उपयोग करके), तो इन चरणों का पालन करके इसे हटा दें:

  1. धीमे और तेज़ पॉइंटर्स के मिलन बिंदु का पता लगाएं।
  2. एक पॉइंटर को सिर की ओर ले जाएं।
  3. दोनों बिंदुओं को एक-एक कदम बढ़ाते हुए तब तक आगे बढ़ाएं जब तक वे एक बिंदु पर न मिल जाएं। लूप का आरंभिक नोड.
  4. पिछले नोड को सेट करें next सेवा मेरे null.

यह दृष्टिकोण चक्रों को हल करते समय अतिरिक्त मेमोरी उपयोग को सुनिश्चित करता है।


26) मेमोरी में लिंक्ड लिस्ट को दर्शाने के विभिन्न तरीके क्या हैं?

लिंक्ड सूचियों को इस प्रकार दर्शाया जा सकता है तीन मुख्य तरीके:

प्रतिनिधित्व प्रकार विवरण उदाहरण उपयोग
गतिशील नोड्स प्रत्येक नोड को गतिशील रूप से आवंटित और लिंक किया जाता है। C, C++
स्थिर सरणी प्रतिनिधित्व पॉइंटर्स के बजाय ऐरे इंडेक्स का उपयोग करता है अंत: स्थापित प्रणाली
लिंक की गई वस्तुएं क्लासों के साथ ऑब्जेक्ट-ओरिएंटेड प्रतिनिधित्व Java, Python

प्रत्येक दृष्टिकोण अलग-अलग वातावरणों के लिए उपयुक्त होता है - उदाहरण के लिए, सरणी-आधारित सूचियों का उपयोग तब किया जाता है जब पॉइंटर हेरफेर प्रतिबंधित होता है।


27) आप लिंक्ड लिस्ट की लंबाई कैसे ज्ञात कर सकते हैं (इटरेटिव और रिकर्सिव)?

पुनरावृत्तीय दृष्टिकोण:

int getLength(ListNode head) {
    int count = 0;
    while (head != null) {
        count++;
        head = head.next;
    }
    return count;
}

पुनरावर्ती दृष्टिकोण:

int getLength(ListNode head) {
    if (head == null) return 0;
    return 1 + getLength(head.next);
}

दोनों दृष्टिकोणों में पर) समय जटिलता; पुनरावर्तन जोड़ता है पर) कॉल स्टैक के कारण स्पेस ओवरहेड।


28) एक उदाहरण सहित वृत्ताकार दोहरी लिंक्ड सूचियों की अवधारणा को समझाइए।

में वृत्ताकार दोहरी लिंक्ड सूचीप्रत्येक नोड के दो लिंक होते हैं — एक अगले नोड से और एक पिछले नोड से — और अंतिम नोड का next सिर की ओर इशारा करता है, जबकि सिर का prev यह अंतिम नोड को इंगित करता है।

उदाहरण उपयोग के मामले:

  • वास्तविक समय संचालन प्रणाली (राउंड-रोबिन शेड्यूलिंग)
  • संगीत प्लेलिस्ट लूपिंग
  • टैब या स्लाइड के बीच नेविगेशन

लाभ:

  • द्विदिशात्मक पारगमन।
  • कोई शून्य संदर्भ नहीं।
  • कुशल सम्मिलन और विलोपन।

29) लिंक्ड लिस्ट में वैकल्पिक नोड्स को कैसे डिलीट किया जाता है?

कलन विधि:

  1. सिर से शुरू करें।
  2. पॉइंटर्स को समायोजित करके हर दूसरे नोड को डिलीट करें।
  3. सूची समाप्त होने तक जारी रखें।

उदाहरण:

Input: 1 → 2 → 3 → 4 → 5  
Output: 1 → 3 → 5

जटिलता:

  • समय: O(n)
  • स्थान: O(1)

यह पॉइंटर ट्रैवर्सल और डिलीशन सेफ्टी की समझ की जांच करता है।


30) आप लिंक्ड लिस्ट के प्रारंभ और अंत से nवें नोड को कैसे ज्ञात कर सकते हैं?

प्रारंभ से: सूची में तब तक ट्रैवर्स करें जब तक कि count = n न हो जाए।

अंत से: दो पॉइंटर का उपयोग करें।

  1. पहले पॉइंटर को n चरणों आगे बढ़ाएं।
  2. दोनों को एक साथ तब तक हिलाएं जब तक कि पहला शून्य तक न पहुंच जाए।
  3. अब दूसरा पॉइंटर अंत से nवें नोड की ओर इंगित करता है।

समय जटिलता: पर)

अंतरिक्ष जटिलता: ओ (1)

इस दृष्टिकोण से लंबाई की गणना अलग से करने की आवश्यकता नहीं होती, जिससे दक्षता में सुधार होता है।


31) आप लिंक्ड लिस्ट को कैसे पुनर्व्यवस्थित करते हैं?

समस्या: दी गई सूची L0 → L1 → … → Ln-1 → Lnइसे पुनः व्यवस्थित करें L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …

चरण:

  1. सूची का मध्य बिंदु ज्ञात कीजिए।
  2. Revदूसरे भाग को उलट दें।
  3. दोनों हिस्सों को बारी-बारी से मिलाएँ।

उदाहरण:

Input: 1 → 2 → 3 → 4 → 5  
Output: 1 → 5 → 2 → 4 → 3

जटिलता: O(n) समय, O(1) स्थान.

यह प्रश्न एक ही प्रश्न में कई लिंक्ड लिस्ट ऑपरेशनों का परीक्षण करता है।


32) आप किसी दिए गए मान x के आधार पर लिंक्ड लिस्ट को कैसे विभाजित करते हैं?

उद्देश्य:
नोड्स को इस प्रकार पुनर्व्यवस्थित करें कि x से छोटे सभी नोड्स x से बड़े या उसके बराबर नोड्स से पहले आ जाएं।

दृष्टिकोण:

  • दो डमी सूचियाँ बनाए रखें: before और after.
  • मूल सूची को ट्रैवर्स करें और नोड्स को संबंधित सूचियों में जोड़ें।
  • अंत में इन्हें मिला दें।

उदाहरण:

Input: 3 → 5 → 8 → 5 → 10 → 2 → 1, x = 5  
Output: 3 → 2 → 1 → 5 → 8 → 5 → 10

डेटा को पुनर्व्यवस्थित करने की क्षमता का मूल्यांकन करने के लिए अक्सर यह प्रश्न पूछा जाता है।


33) आप लिंक्ड लिस्ट को कैसे सॉर्ट करते हैं?

क्योंकि लिंक्ड लिस्ट रैंडम एक्सेस को सपोर्ट नहीं करती हैं, मर्ज़ सॉर्ट सबसे अच्छा विकल्प है।

चरण:

  1. धीमे/तेज़ पॉइंटर का उपयोग करके सूची को दो हिस्सों में विभाजित करें।
  2. प्रत्येक आधे भाग को पुनरावर्ती रूप से क्रमबद्ध करें।
  3. क्रमबद्ध भागों को मर्ज करें।

लाभ:

  • O(n log n) समय।
  • O(1) अतिरिक्त स्थान (पुनरावर्ती संस्करण के लिए)।

एरे के विपरीत, पॉइंटर पुनर्व्यवस्था की जटिलता के कारण क्विकसॉर्ट लिंक्ड लिस्ट के लिए अक्षम है।


34) एकल, द्वि और वृत्ताकार लिंक्ड लिस्ट में क्या अंतर है?

Feature अकेले दोगुना परिपत्र
लिंक एक (अगला) दो (पिछला और अगला) अंतिम नोड शीर्ष से जुड़ता है
traversal आगे से ही आगे और पीछे अनंत पारगमन संभव है
प्रविष्टि/विलोपन मध्यम दोनों छोरों पर आसान विशेष मामले से निपटना
उदाहरण स्टैक, कतार पूर्ववत करें संचालन राउंड-रॉबिन शेड्यूलिंग

यह तुलनात्मक प्रश्न अक्सर अवधारणात्मक स्पष्टता की जांच करने के लिए पूछा जाता है।


35) दो वृत्ताकार लिंक्ड सूचियों के प्रतिच्छेदन नोड को आप कैसे ज्ञात करते हैं?

यह प्रतिच्छेदन समस्या का ही विस्तार है।

कलन विधि:

  1. पता लगाएं कि प्रत्येक सूची में लूप है या नहीं।
  2. यदि दोनों चक्रीय नहीं हैं → तो मानक प्रतिच्छेदन एल्गोरिदम का उपयोग करें।
  3. यदि दोनों चक्रीय हैं → तो प्रत्येक के लिए लूप की शुरुआत का पता लगाएं और जांचें कि वे समान हैं या आपस में जुड़े हुए हैं।

यह समस्या निम्नलिखित को जोड़ती है चक्र का पता लगाना और प्रतिच्छेदन तर्कबहु-अवधारणा तर्क का परीक्षण करना।


36) क्रमबद्ध लिंक्ड लिस्ट में नोड डालने का तरीका समझाइए।

चरण:

  1. दिए गए मान के साथ एक नया नोड बनाएं।
  2. सही स्थान मिलने तक आगे बढ़ते रहें।
  3. समायोजित करें next तदनुसार संकेत।

उदाहरण:

Input: 1 → 3 → 5 → 7, Insert 4  
Output: 1 → 3 → 4 → 5 → 7

यह पॉइंटर एडजस्टमेंट की समझ का परीक्षण करने के लिए एक बुनियादी हेरफेर समस्या है।


37) आप लिंक्ड लिस्ट को दो हिस्सों में कैसे विभाजित करते हैं?

कलन विधि:

  • धीमे और तेज़ पॉइंटर विधि का उपयोग करें।
  • . fast अंत तक पहुँचता है, slow मध्यबिंदु पर होगा।
  • उस नोड पर विभाजित करें।

उदाहरण:

Input: 1 → 2 → 3 → 4 → 5  
Output: 1 → 2 → 3  and  4 → 5

यह प्रक्रिया अक्सर लिंक्ड लिस्ट मर्ज सॉर्ट का पहला चरण होती है।


38) लिंक्ड लिस्ट में किसी मान की अंतिम घटना कैसे ज्ञात करते हैं?

सूची में आगे बढ़ते हुए उस अंतिम नोड का पता लगाएं जहां लक्ष्य मान पाया जाता है।

छद्म-कोड:

ListNode findLastOccurrence(ListNode head, int val) {
    ListNode result = null;
    while (head != null) {
        if (head.val == val) result = head;
        head = head.next;
    }
    return result;
}

जटिलता: पर)

यह लीनियर ट्रैवर्सल और कंडीशन चेकिंग की समझ की जांच करता है।


39) आप लिंक्ड लिस्ट से किसी दी गई कुंजी के सभी उदाहरणों को कैसे हटा सकते हैं?

कलन विधि:

  1. यदि हेड नोड्स में लक्ष्य कुंजी मौजूद है, तो उन्हें पहले हैंडल करें।
  2. फिर कुंजी वाले नोड्स को ट्रैवर्स करें और डिलीट करें।

उदाहरण:

Input: 1 → 2 → 6 → 3 → 4 → 5 → 6, Key = 6  
Output: 1 → 2 → 3 → 4 → 5

जटिलता: पर)

यह विशेष परिस्थितियों (विशेषकर सिर के विलोपन) के ज्ञान को दर्शाता है।


40) स्टैक और लिंक्ड लिस्ट डेटा संरचनाओं के बीच मुख्य अंतर क्या हैं?

Feature धुआँरा लिंक्ड सूची
पहुंच प्रकार LIFO (अंतिम अंदर, पहले बाहर) अनुक्रमिक
कार्यान्वयन ऐरे या लिंक्ड लिस्ट नोड आधारित
Operaमाहौल पुश पॉप सम्मिलित करें/हटाएँ/पारगमन करें
लचीलापन प्रतिबंधित एक्सेस लचीली पहुंच
उदाहरण फ़ंक्शन कॉल प्रबंधन गतिशील डेटा प्रबंधन

एक स्टैक को कार्यान्वित किया जा सकता है लिंक्ड लिस्ट का उपयोग करनालेकिन उनकी अवधारणा में अंतर है - स्टैक की पहुंच सीमित होती है जबकि लिंक्ड लिस्ट एक सामान्य-उद्देश्यीय संरचना है।


🔍 वास्तविक जीवन के परिदृश्यों और रणनीतिक प्रतिक्रियाओं के साथ शीर्ष लिंक्ड लिस्ट साक्षात्कार प्रश्न

1) लिंक्ड लिस्ट क्या है, और यह ऐरे से किस प्रकार भिन्न है?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता मूलभूत डेटा संरचनाओं के बारे में आपकी समझ और लाभ-हानि की तुलना करने की आपकी क्षमता का आकलन करना चाहता है।

उदाहरण उत्तर: लिंक्ड लिस्ट एक लीनियर डेटा स्ट्रक्चर है जिसमें नोड्स नामक एलिमेंट्स पॉइंटर्स का उपयोग करके आपस में जुड़े होते हैं। प्रत्येक नोड में डेटा और अगले नोड का रेफरेंस होता है। एरे के विपरीत, लिंक्ड लिस्ट को निरंतर मेमोरी की आवश्यकता नहीं होती है और ये डायनामिक रीसाइज़िंग की अनुमति देती हैं, लेकिन इनमें एक्सेस टाइम धीमा होता है क्योंकि एलिमेंट्स इंडेक्स्ड नहीं होते हैं।


2) वास्तविक दुनिया के अनुप्रयोग में आप ऐरे के बजाय लिंक्ड लिस्ट का चुनाव कब करेंगे?

उम्मीदवार से अपेक्षित: वे उपयुक्त डेटा संरचनाओं के चयन में आपके व्यावहारिक निर्णय का मूल्यांकन कर रहे हैं।

उदाहरण उत्तर: बार-बार डेटा जोड़ने और हटाने की आवश्यकता होने पर, विशेष रूप से डेटा सेट के मध्य में, मैं लिंक्ड लिस्ट का चयन करूंगा। अपनी पिछली भूमिका में, मैंने एक टास्क शेड्यूलिंग फ़ीचर पर काम किया था जहाँ टास्क बार-बार जोड़े और हटाए जाते थे, और लिंक्ड लिस्ट ने ऐरे की तुलना में बेहतर प्रदर्शन प्रदान किया था।


3) क्या आप एकल लिंक्ड लिस्ट और डबल लिंक्ड लिस्ट के बीच अंतर समझा सकते हैं?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता आपकी वैचारिक स्पष्टता और तकनीकी अंतरों को स्पष्ट रूप से समझाने की आपकी क्षमता को सत्यापित करना चाहता है।

उदाहरण उत्तर: एकल लिंक सूची में नोड्स केवल अगले नोड को इंगित करते हैं, जबकि द्वि-लिंक सूची में नोड्स अगले और पिछले दोनों नोड्स को इंगित करते हैं। द्वि-लिंक सूचियों में पीछे की ओर जाना आसान होता है, लेकिन अतिरिक्त पॉइंटर के कारण अधिक मेमोरी की आवश्यकता होती है।


4) आप लिंक्ड सूची में चक्र का पता कैसे लगाएंगे?

उम्मीदवार से अपेक्षित: यह आपकी समस्या-समाधान क्षमता और सामान्य एल्गोरिथम पैटर्न से परिचित होने का परीक्षण करता है।

उदाहरण उत्तर: एक सामान्य तरीका है दो अलग-अलग गति से चलने वाले पॉइंटर्स का उपयोग करना, जिसे अक्सर स्लो और फास्ट पॉइंटर तकनीक कहा जाता है। यदि कोई चक्र बनता है, तो दोनों पॉइंटर्स अंततः मिल जाएंगे। पिछली बार मैंने डेटा प्रोसेसिंग पाइपलाइन में अनंत लूप को रोकने के लिए इसी तरीके का इस्तेमाल किया था।


5) लिंक्ड लिस्ट पर किए जाने वाले कुछ सामान्य ऑपरेशन कौन-कौन से हैं?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता यह देखना चाहता है कि क्या आप मानक संचालन और उनके निहितार्थों को समझते हैं।

उदाहरण उत्तर: सामान्य संक्रियाओं में प्रविष्टि, विलोपन, ट्रैवर्सल, खोज और सूची को उलटना शामिल हैं। प्रत्येक संक्रिया की समय जटिलताएँ उसके निष्पादन स्थान के आधार पर भिन्न होती हैं, जो कुशल प्रणालियों को डिज़ाइन करते समय महत्वपूर्ण है।


6) लिंक्ड लिस्ट के बीच में नोड डालने को आप कैसे संभालते हैं?

उम्मीदवार से अपेक्षित: वे पॉइंटर के उपयोग और बारीकियों पर ध्यान देने की आपकी समझ की जाँच कर रहे हैं।

उदाहरण उत्तर: सूची के मध्य में एक नोड डालने के लिए, मैं पहले सूची में लक्ष्य स्थान खोजने के लिए ट्रैवर्स करता हूँ, फिर पॉइंटर्स को इस प्रकार समायोजित करता हूँ कि नया नोड अगले नोड को इंगित करे और पिछला नोड नए नोड को इंगित करे। सूची को टूटने से बचाने के लिए पॉइंटर्स को सावधानीपूर्वक अपडेट करना अत्यंत महत्वपूर्ण है।


7) एक ऐसी स्थिति का वर्णन करें जहां लिंक्ड लिस्ट के कारण प्रदर्शन संबंधी समस्याएं उत्पन्न हुईं और आपने उनका समाधान कैसे किया।

उम्मीदवार से अपेक्षित: यह व्यवहार संबंधी प्रश्न आपकी चिंतनशीलता और अनुकूलन क्षमता का मूल्यांकन करता है।

उदाहरण उत्तर: मेरी पिछली नौकरी में, बार-बार खोज कार्यों के लिए लिंक्ड लिस्ट का उपयोग किया जाता था, जिससे प्रदर्शन धीमा हो जाता था। मैंने समस्या की पहचान की और हैश-आधारित संरचना पर स्विच करने की सिफारिश की, जिससे खोज समय में काफी सुधार हुआ।


8) आप लिंक्ड लिस्ट को कैसे रिवर्स करेंगे?

उम्मीदवार से अपेक्षित: साक्षात्कारकर्ता आपकी तार्किक सोच और पुनरावृत्ति या पुनरावर्ती दृष्टिकोणों की समझ का परीक्षण कर रहा है।

उदाहरण उत्तर: मैं लिंक्ड लिस्ट को उलटने के लिए उसमें एक-एक करके सभी नोड्स के नेक्स्ट पॉइंटर को पिछले नोड की ओर बदलूंगा। यह प्रक्रिया तब तक जारी रहेगी जब तक सभी पॉइंटर उलट न जाएं और हेड अपडेट न हो जाए।


9) लिंक्ड लिस्ट का उपयोग करने के क्या फायदे और नुकसान हैं?

उम्मीदवार से अपेक्षित: वे संतुलित दृष्टिकोण और लाभ-हानि की समझ चाहते हैं।

उदाहरण उत्तर: इसके फायदों में गतिशील आकार और कुशल प्रविष्टियाँ और विलोपन शामिल हैं। इसके नुकसानों में एरे की तुलना में अधिक मेमोरी का उपयोग और धीमी एक्सेस गति शामिल हैं। अपनी पिछली नौकरी में, इन लाभों और लाभों को समझने से मुझे विभिन्न घटकों के लिए सही संरचना चुनने में मदद मिली।


10) सिस्टम डिजाइन में किस प्रकार की लिंक्ड लिस्ट का उपयोग करना है, यह आप कैसे तय करते हैं?

उम्मीदवार से अपेक्षित: यह परिस्थितिजन्य प्रश्न वास्तु संबंधी संदर्भों में निर्णय लेने की प्रक्रिया का आकलन करता है।

उदाहरण उत्तर: मैं ट्रैवर्सल की ज़रूरतों, मेमोरी की सीमाओं और ऑपरेशन की आवृत्ति जैसे कारकों पर विचार करता हूँ। उदाहरण के लिए, यदि बैकवर्ड ट्रैवर्सल की आवश्यकता है, तो डबली लिंक्ड लिस्ट अधिक उपयुक्त है, जबकि सरल और मेमोरी-कुशल कार्यान्वयन के लिए सिंगली लिंक्ड लिस्ट पर्याप्त है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: