एक लिंक की गई सूची को देखते हुए, हमें इसके पहले तत्व को हटाना होगा और पॉइंटर को नई सूची के शीर्ष पर वापस करना होगा।
Input : 1 -> 2 -> 3 -> 4 -> 5 -> NULL Output : 2 -> 3 -> 4 -> 5 -> NULL Input : 2 -> 4 -> 6 -> 8 -> 33 -> 67 -> NULL Output : 4 -> 6 -> 8 -> 33 -> 67 -> NULL
दी गई समस्या में, हमें सूची के पहले नोड को हटाना होगा और अपने सिर को दूसरे तत्व पर ले जाना होगा और सिर को वापस करना होगा।
समाधान खोजने के लिए दृष्टिकोण
इस समस्या में, हम सिर को अगले स्थान पर ले जा सकते हैं और फिर पिछले नोड को मुक्त कर सकते हैं।
उदाहरण
#include <iostream>
using namespace std;
/* Link list node */
struct Node {
int data;
struct Node* next;
};
void push(struct Node** head_ref, int new_data) { // pushing the data into the list
struct Node* new_node = new Node;
new_node->data = new_data;
new_node->next = (*head_ref);
(*head_ref) = new_node;
}
int main() {
Node* head = NULL;
push(&head, 12);
push(&head, 29);
push(&head, 11);
push(&head, 23);
push(&head, 8);
auto temp = head; // temp becomes head
head = head -> next; // our head becomes the next element
delete temp; // we delete temp i.e. the first element
for (temp = head; temp != NULL; temp = temp->next) // printing the list
cout << temp->data << " ";
return 0;
} आउटपुट
23 11 29 12
उपरोक्त कोड की व्याख्या
हमें बस इस कार्यक्रम में सिर को उसके अगले तत्व में स्थानांतरित करने की आवश्यकता है और फिर पिछले तत्व को हटा दें और फिर नई सूची को प्रिंट करें। दिए गए कार्यक्रम की समग्र समय जटिलता O(1) है, जिसका अर्थ है कि हमारा कार्यक्रम दिए गए इनपुट पर निर्भर नहीं है, और यह सबसे अच्छी जटिलता है जिसे हम प्राप्त कर सकते हैं।
निष्कर्ष
इस लेख में, हम लिंक की गई सूची के पहले नोड को हटाने के लिए एक समस्या का समाधान करते हैं। हमने इस समस्या के लिए C++ प्रोग्राम और हमारे द्वारा हल किए गए संपूर्ण दृष्टिकोण को भी सीखा। हम उसी प्रोग्राम को अन्य भाषाओं जैसे सी, जावा, पायथन और अन्य भाषाओं में लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।