2016-10-09 8 views
6

यह होमवर्कसूचकांक एन पर तत्व हटाएँ, LinkedList

मैं एक LinkedList से kth तत्व नष्ट करने के लिए कहा गया है। मुझे इसका आकार int N भी दिया गया है। सवाल यह है कि नोड को स्थिति "के" पर हटाने के बाद मैं अपनी सूची का आकार कैसे अपडेट करूं? अगर मेरे कोड में तर्क के साथ कुछ गड़बड़ है, तो कृपया इसका जिक्र करें।

मैं समाधान सिर्फ मार्गदर्शन नहीं चाहता, धन्यवाद।

int N;    
Node first;   

// delete the kth element (where k is between 0 and N-1 inclusive) 
public void delete (int k) { 
    if (k < 0 || k >= N) 
     throw new IllegalArgumentException(); 
    Node x = first; 
    if(k == 0){ 
     first = x.next; 
     N = N - 1; 
    } 
    for(int i = 1; i < k; i++){ 
     x = x.next; 
     N = N - 1; 
    } 
    x.next = x.next.next; 
    N = N - 2; 
} 

मुझे लगता है कि मैं सूची आकार (int एन) के साथ कुछ गलत कर रहा हूं।

+0

क्या एक तत्व को हटाने के बाद हमेशा सूची का आकार कम नहीं होगा? – qxz

+0

इसके अलावा, क्या यह एक सिंगल-लिंक्ड या दोगुनी-लिंक्ड सूची है? – qxz

+0

एकल-लिंक्ड सूची – Hello

उत्तर

2

जब आप एक नोड को हटाते हैं, तो आप सिर्फ कश्मीर में (नया) अगले नोड करने के लिए पिछले Node के next बदलने की जरूरत है और N (N--) घटती सूची आकार अद्यतन करने के लिए।

संपादित

इसके अलावा अपने पाश के लिए आप नोड k

0

दो मामलों बनाने पर विचार करें इससे पहले कि सभी नोड्स के अगले बदल रहे हैं पर ध्यान देना: कश्मीर == 0 और बाकी। आकार एन द्वारा दिया जाता है तो नया आकार एन होना चाहिए - 1.

Node x = first; // What a name 
if (k == 0) { 
    first = x.next; // Could be first = first.next 
    N = N - 1; 
    // Are you done here? 
} 

for (int i = 1; i < k; i++) { 
    x = x.next; 
    // Really? N = N - 1; 
} 
x.next = x.next.next; 
// Really? N = N - 2; 
N = N - 1; 
0

list.remove(Object obj) विधि LinkedList में परिभाषित का उपयोग करें। के-वें तत्व पर ऑब्जेक्ट प्राप्त करने के लिए, आप list.get(int index) का उपयोग कर सकते हैं। एक बार जब आप के-वें तत्व पाते हैं, तो किसी भी समवर्ती संशोधन समस्याओं या इंडेक्स से संबंधित त्रुटियों से बचने के लिए तोड़ने या लौटने पर विचार करें।

+0

ओपी 'java.util.LinkedList' का उपयोग नहीं करते हुए, उनके _own_ लिंक किए गए सूची कार्यान्वयन को लिख रहा है। उत्तर देने से पहले पूरे प्रश्न को पढ़ना हमेशा मदद करता है। – qxz

संबंधित मुद्दे