Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में रिवर्स लिंक्ड लिस्ट

मान लीजिए कि हमारे पास एक लिंक की गई सूची है, हमें इसे उलटना होगा। तो अगर सूची 1 → 3 → 5 → 7 की तरह है, तो नई उलटी सूची 7 → 5 → 3 → 1

होगी

इसे हल करने के लिए, हम इस दृष्टिकोण का पालन करेंगे -

  • हल करने के लिए पुनरावर्ती तरीके से सूची उलटने के लिए एक प्रक्रिया को परिभाषित करें (सिर, पीछे)
  • यदि सिर मौजूद नहीं है, तो सिर वापस करें
  • अस्थायी:=head.next
  • head.next:=पीछे
  • पीछे =सिर
  • अगर टेम्परेचर खाली है, तो हेड रिटर्न करें
  • सिर =अस्थायी
  • वापसी हल (सिर, पीछे)

उदाहरण

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

क्लास लिस्टनोड:def __init__(self, data, next =none):self.val =data self.next =nextdef make_list(elements):head ="ListNode(elements[0]) तत्वों में तत्व के लिए [1:]:ptr =सिर जबकि ptr.next:ptr =ptr.next ptr.next =ListNode(element)return headdef print_list(head):ptr =हेड प्रिंट ('[', end ="") जबकि ptr:प्रिंट (ptr) .val, end =",") ptr =ptr.next Print(']')class Solution(object):def रिवर्सलिस्ट (स्वयं, सिर):""":टाइप हेड:लिस्टनोड:rtype:लिस्टनोड """ रिटर्न सेल्फ.सॉल्व (हेड, नोन) डेफ सॉल्व (सेल्फ, हेड, बैक):अगर हेड नहीं है:रिटर्न हेड टेम्प =हेड। नेक्स्ट #प्रिंट (हेड.वैल) हेड। नेक्स्ट =बैक बैक =हेड अगर टेम्प नहीं है:रिटर्न हेड सिर =अस्थायी वापसी स्वयं। 

इनपुट

list1 =[1,3,5,7]

आउटपुट

[7, 5, 3, 1, ]

  1. पायथन में पालिंड्रोम लिंक्ड लिस्ट

    मान लीजिए कि हमारे पास एक लिंक्ड सूची है। हमें यह जांचना होगा कि सूची के तत्व एपेलिंड्रोम बना रहे हैं या नहीं। तो अगर सूची तत्व [1,2,3,2,1] जैसा है, तो यह एक पैलिंड्रोम है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - तेज:=सिर, धीमा:=सिर, रेव:=कोई नहीं और झंडा:=1 यदि सिर खाली है, तो सही ल

  1. पायथन में लिंक्ड लिस्ट साइकिल

    मान लें कि हमारे पास एक लिंक्ड सूची है, और हमें यह जांचना है कि कोई चक्र है या नहीं। दी गई लिंक्ड सूची में चक्र का प्रतिनिधित्व करने के लिए, हम पॉज़ नामक एक पूर्णांक सूचक का उपयोग करेंगे। यह स्थिति लिंक की गई सूची में एक स्थिति का प्रतिनिधित्व करती है जहां पूंछ जुड़ा हुआ है। तो अगर पॉज़ -1 है, तो लि

  1. पायथन में एक लिंक्ड सूची में नोड हटाएं

    मान लीजिए कि हमारे पास कुछ तत्वों के साथ एक लिंक्ड सूची है। हमारा काम एक फ़ंक्शन लिखना है जो दिए गए नोड को सूची से हटा देगा। तो अगर सूची 1 → 3 → 5 → 7 → 9 की तरह है, और 3 को हटाने के बाद, यह 1 → 5 → 7 → 9 होगा। मान लें कि हमारे पास पॉइंटर नोड है जो इंगित करता है कि नोड को हटाया जाना है, हमें नोड को