লিঙ্কড লিস্ট একটি লিনিয়ার ডেটা স্ট্রাকচার যেখানে প্রতিটি নোডের দুটি ফিল্ড থাকে: ডেটা এবং পরবর্তী নোডের ঠিকানা। লিস্টের শেষ নোডকে টেইল নোড বলে। এই টেইল নোডটি ডিলিট করতে হবে।
ইনপুট ১
1 → 2 → 3 → 4 → 5
আউটপুট
1 → 2 → 3 → 4 →
ইনপুট ২
5 → 8 → 3
আউটপুট
5 → 8 →
সমাধানের পদ্ধতি
- একটি
prevপয়েন্টার (NULL) এবংtempপয়েন্টার (head) নিন। temp->next != NULLপর্যন্ত লুপ চালিয়েprev = temp; temp = temp->nextকরুন।- লুপ শেষে
tempহবে টেইল নোড,prevহবে সেকেন্ড লাস্ট নোড। delete temp; prev->next = NULL;করুন।
উদাহরণ
#include <iostream>
using namespace std;
class Node {
public:
int data; Node* next;
Node(int d) { data = d; next = NULL; }
};
void insertAtFirst(Node* &head, int data) {
Node* n = new Node(data);
n->next = head; head = n;
}
void printNode(Node* head) {
while (head != NULL) {
cout << head->data << "→";
head = head->next;
}
cout << endl;
}
void deleteAtTail(Node* head) {
Node* prev = NULL;
Node* temp = head;
while (temp->next != NULL) {
prev = temp;
temp = temp->next;
}
delete temp;
prev->next = NULL;
}
int main() {
Node* head = NULL;
insertAtFirst(head, 5); insertAtFirst(head, 4);
insertAtFirst(head, 3); insertAtFirst(head, 2);
insertAtFirst(head, 1);
deleteAtTail(head);
printNode(head);
return 0;
}
আউটপুট
1→2→3→4→