अब हम देखेंगे कि लिंक्ड लिस्ट में सेकंड लास्ट एलिमेंट कैसे प्राप्त करें। मान लीजिए कुछ एलिमेंट्स हैं जैसे [10, 52, 41, 32, 69, 58, 41], सेकंड लास्ट एलिमेंट 58 है।
इस समस्या को हल करने के लिए, हम दो पॉइंटर्स का उपयोग करेंगे, एक वर्तमान नोड को इंगित करेगा, और दूसरा वर्तमान स्थिति के पिछले नोड को इंगित करेगा, फिर हम तब तक आगे बढ़ेंगे जब तक कि वर्तमान का नेक्स्ट नल न हो जाए, फिर बस पिछले नोड को वापस करें।
उदाहरण
#includeusing namespace std; class Node { public: int data; Node *next; }; void prepend(Node** start, int new_data) { Node* new_node = new Node; new_node->data = new_data; new_node->next = NULL; if ((*start) != NULL){ new_node->next = (*start); *start = new_node; } (*start) = new_node; } int secondLastElement(Node *start) { Node *curr = start, *prev = NULL; while(curr->next != NULL){ prev = curr; curr = curr->next; } return prev->data; } int main() { Node* start = NULL; prepend(&start, 15); prepend(&start, 20); prepend(&start, 10); prepend(&start, 9); prepend(&start, 7); prepend(&start, 17); cout << "Second last element is: " << secondLastElement(start); }
आउटपुट
Second last element is: 20