मान लीजिए कि हमारे पास एक अपरिवर्तनीय लिंक्ड सूची है, हमें निम्नलिखित इंटरफ़ेस की सहायता से प्रत्येक नोड के सभी मानों को रिवर्स में प्रिंट करना होगा -
-
ImmutableListNode - यह एक अपरिवर्तनीय लिंक्ड सूची का इंटरफ़ेस है, हमें सूची का प्रमुख दिया जाता है।
लिंक की गई सूची तक पहुँचने के लिए हमें निम्नलिखित कार्यों का उपयोग करना होगा -
-
ImmutableListNode.printValue() - यह वर्तमान नोड का मान प्रिंट करेगा।
-
ImmutableListNode.getNext() -यह अगला नोड लौटाएगा।
तो अगर सूची इस प्रकार है:[0, -4, -1, 3, -5], तो आउटपुट [-5, 3, -1, -4, 0]
होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
ImmutableListNode प्रकार नोड के लिए एक स्टैक सेंट परिभाषित करें
-
जबकि सिर खाली नहीं है
-
सेंट में सिर डालें
-
सिर :=सिर के बगल में
-
-
जबकि सेंट खाली नहीं है
-
स्टैक टॉप नोड का मान प्रिंट करें
-
स्टैक से नोड हटाएं
-
उदाहरण (C++)
एक बेहतर समझ प्राप्त करने के लिए आइए निम्नलिखित कार्यान्वयन को देखें -
class Solution { public: void printLinkedListInReverse(ImmutableListNode* head) { stack <ImmutableListNode*> st; while(head){ st.push(head); head = head->getNext(); } while(!st.empty()){ st.top()->printValue(); st.pop(); } } };
इनपुट
[0,-4,-1,3,-5]
आउटपुट
[-5,3,-1,-4,0]