मैं उलझन में हूं कि प्रत्येक नोड दूसरे से कैसे जुड़ता है और यह सुनिश्चित करने के लिए कि अगर मैं अंत में एक के बाद पहले नोड को जोड़ना चाहता हूं, तो मैं नहीं चला रहा अनंत लूप। उदाहरण के लिए, इस समस्या में ..पहला लास्ट जावा लिंक्ड सूची/नोड्स
पहले एक विधि लिखें, जिसे लिंक्डइन्टलिस्ट वर्ग में जोड़ा जा सकता है जो सूची के पहले तत्व को सूची के पीछे के अंत में ले जाता है। मान लीजिए कि एक लिंक्डइन्टलिस्ट वैरिएबल नाम निम्नलिखित तत्वों को सामने (बाएं) से पीछे (दाएं) से संग्रहीत करता है:
[18, 4, 27, 9, 54, 5, 63] यदि आपने सूची का कॉल किया है। सबसे पहले() ;, सूची इस क्रम में तत्वों को संग्रहीत करेगी:
[4, 27, 9, 54, 5, 63, 18] यदि सूची खाली है या केवल एक तत्व है, तो इसकी सामग्री नहीं होनी चाहिए संशोधित किया जाना चाहिए।
मेरा पहला प्रयास कोई लाभ नहीं हुआ this..but करना है:
`public void firstLast(){
ListNode temp = front;//stores/references the first node
temp.next = null;//ensures that first node isn't referring to any other
//node
ListNode current = front;//reaches end node/first one with a null
//reference
while(current.next != null){
current = current.next;
}
front.next = temp;//links end node to first node
front = current.next;////now that skips the first element`
लेकिन उत्पादन [18] -> [18] (cycles!)
है। कृपया सलाह दें
अपने linkedlist नहीं कार्यान्वयन 'प्रदान करता pop' और' push'? इस विधि को आप लागू कर रहे हैं उन –
पर भरोसा करना चाहिए, एक छवि बनाएं, डेटा संरचनाओं से निपटने के दौरान क्या हो रहा है, यह देखने के लिए बहुत उपयोगी है: http://i.imgur.com/7sSmB0x.jpg। काले तीर ** अगले ** पॉइंटर्स हैं जिन्हें आप हेरफेर करने की कोशिश कर रहे हैं। अब कल्पना करें कि आपका एल्गोरिदम क्या करता है। अपने विशिष्ट कार्य के लिए - बस इसे अंतिम तत्व के ** अगले ** को इंगित करें, इसे ** पूंछ ** बनाएं और पिछले दूसरे तत्व को ** ** ** पर बनाएं। ** महत्वपूर्ण **: पूरी चीज को फिर से शुरू करने की कोई ज़रूरत नहीं है, * यह * अन्य डेटा-संरचनाओं के लिए 'लिंक्डलिस्ट' अवधारणा का लाभ है! – Zabuza
GUIDO, नहीं, इसमें 'पॉप' और' पुश 'नहीं है। क्या लिंकलिस्ट आमतौर पर जावा में करते हैं? (मैंने सोचा था कि यह केवल स्टैक्स था .. – Anna