मान लीजिए कि हमारे पास एक लिंक की गई सूची है, हमें इसे उलटना होगा। तो अगर सूची 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, ]