ধরুন আমাদের একটি অপরিবর্তনীয় লিঙ্কযুক্ত তালিকা আছে, আমাদের নিম্নলিখিত ইন্টারফেসের সাহায্যে বিপরীতভাবে প্রতিটি নোডের সমস্ত মান মুদ্রণ করতে হবে -
-
অপরিবর্তনীয় লিস্টনোড - এটি একটি অপরিবর্তনীয় লিঙ্কযুক্ত তালিকার একটি ইন্টারফেস, আমাদেরকে তালিকার প্রধান দেওয়া হয়েছে৷
লিঙ্ক করা তালিকা -
অ্যাক্সেস করতে আমাদের নিম্নলিখিত ফাংশনগুলি ব্যবহার করতে হবে-
ImmutableListNode.printValue() − এটি বর্তমান নোডের মান প্রিন্ট করবে।
-
ImmutableListNode.getNext() −এটি পরবর্তী নোড ফিরিয়ে দেবে।
তাই যদি তালিকাটি এরকম হয়:[0, -4, -1, 3, -5], তাহলে আউটপুট হবে [-5, 3, -1, -4, 0]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
ImmutableListNode টাইপ নোডের জন্য একটি স্ট্যাক st সংজ্ঞায়িত করুন
-
যখন মাথা শূন্য হয় না
-
st
এ মাথা ঢোকান -
মাথা :=মাথার পাশে
-
-
যখন সেন্টটি খালি নয়
-
স্ট্যাক টপ নোডের মান প্রিন্ট করুন
-
স্ট্যাক থেকে নোড মুছুন
-
উদাহরণ (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]