मैं कुछ समय के लिए एक जावा प्रोजेक्ट पर एक क्लास के लिए काम कर रहा हूं। यह एक लिंक की गई सूची का कार्यान्वयन है (यहां कहा जाता है AddressList
, जिसे सरल नोड्स कहा जाता है ListNode
)। पकड़ यह है कि सब कुछ पुनरावर्ती एल्गोरिदम के साथ करना होगा। मैं सब कुछ ठीक करने में सक्षम था एक विधि:public AddressList reverse()
ListNode:
public class ListNode{
public String data;
public ListNode next;
}
अभी मेरा reverse
फ़ंक्शन सिर्फ एक सहायक फ़ंक्शन को कॉल करता है जो पुनरावृत्ति की अनुमति देने के लिए एक तर्क लेता है।
public AddressList reverse(){
return new AddressList(this.reverse(this.head));
}
मेरे सहायक फ़ंक्शन के हस्ताक्षर होने के साथ private ListNode reverse(ListNode current)
।
फिलहाल, मेरे पास एक स्टैक का उपयोग करके पुनरावृत्त रूप से काम करना है, लेकिन यह वह नहीं है जिसके लिए विनिर्देश की आवश्यकता होती है। मुझे C में एक एल्गोरिथ्म मिला था जो पुन: आवर्ती हो गया और इसे जावा कोड में परिवर्तित कर दिया, और यह काम कर गया, लेकिन मुझे इसकी कोई समझ नहीं थी।
संपादित करें: कोई बात नहीं, मैंने इस बीच पता लगा लिया।
private AddressList reverse(ListNode current, AddressList reversedList){
if(current == null)
return reversedList;
reversedList.addToFront(current.getData());
return this.reverse(current.getNext(), reversedList);
}
जब मैं यहाँ हूँ, किसी को भी इस मार्ग के साथ कोई समस्या है?