#include<iostream>
using namespace std;
struct Node
{
int data;
Node* next;
};
class LinkList
{
public:
LinkList(int[], int);
Node* removeNthFromEnd(int);
void coutlinklist(Node*);
Node * getHead();
private:
Node* head;
using namespace std;
struct Node
{
int data;
Node* next;
};
class LinkList
{
public:
LinkList(int[], int);
Node* removeNthFromEnd(int);
void coutlinklist(Node*);
Node * getHead();
private:
Node* head;
};
Node* LinkList::getHead()
{
return head;
}
LinkList::LinkList(int a[], int n)
{
//head = new Node;
Node* front = head;
front->next = NULL;
for (int i = n-1; i >= 0; i--)
{
Node* s = new Node;
s->data = a[i];
s->next = front->next;
front->next = s;
}
}
Node* LinkList::removeNthFromEnd(int n)
{
Node* first = head;
Node* second = head;
Node* pre = NULL;
for (int i = 0; i < n - 1; i++)
{
first = first->next;
}
while (first->next != NULL)
{
pre = second;
second = second->next;
first = first->next;
}
if (second==head)
head = head->next;
else
pre->next = second->next;
return head;
}
void LinkList::coutlinklist(Node* head)
{
Node *p = head;
while (p->next != NULL)
{
p = p->next;
cout << p->data <<' ';
}
Node* LinkList::getHead()
{
return head;
}
LinkList::LinkList(int a[], int n)
{
//head = new Node;
Node* front = head;
front->next = NULL;
for (int i = n-1; i >= 0; i--)
{
Node* s = new Node;
s->data = a[i];
s->next = front->next;
front->next = s;
}
}
Node* LinkList::removeNthFromEnd(int n)
{
Node* first = head;
Node* second = head;
Node* pre = NULL;
for (int i = 0; i < n - 1; i++)
{
first = first->next;
}
while (first->next != NULL)
{
pre = second;
second = second->next;
first = first->next;
}
if (second==head)
head = head->next;
else
pre->next = second->next;
return head;
}
void LinkList::coutlinklist(Node* head)
{
Node *p = head;
while (p->next != NULL)
{
p = p->next;
cout << p->data <<' ';
}
}
int main()
{
int a[5] = { 1, 2, 3, 4, 5 };
LinkList L(a,5);
L.coutlinklist(L.getHead());
L.removeNthFromEnd(2);
L.coutlinklist(L.getHead());
return 0;
}
int main()
{
int a[5] = { 1, 2, 3, 4, 5 };
LinkList L(a,5);
L.coutlinklist(L.getHead());
L.removeNthFromEnd(2);
L.coutlinklist(L.getHead());
return 0;
}