Introduction:
In this tutorial, we will insert a new node at the end of the list.
To insert a new node at the end of the list, we have to follow few steps:
step1: first of all we should have a linked list, and if we don't have the list, then we have to create the list first.
code for creating the list:
#include<bits/stdc++.h>
using namespace std;
struct Node{
int val;
struct Node *next;
};
int main(){
int n;
cout<<"enter the number of Nodes:";
cin>>n;struct Node* head = NULL;
struct Node* temp;
int m;
while(n--){
cout<<"enter the data into nodes:";
cin>>m;if(head==NULL){
head = new Node();//creating a node
head->val = m; // assigning value
head->next=NULL;
temp=head;//updating temp
}
else{
struct Node *temp1 = new Node();//creating a node
temp1->val = m;//assigning value
temp1->next = NULL;
temp->next = temp1; // linking temp with newly created node(temp1)
temp=temp1;// shifting temp to newly created node(temp1)
}
}
}
now we have our list.
step2: Now we have to reach at the last node of previously created list. and to reach the last node we simply run a while loop.
struct Node *temp = head;
while(temp->next != NULL){
temp=temp->next;
}
let's understand this part:
first of all i created temp variable and point it to head. this step is neccessary, because if we traverse it like
while(head->next!=NULL){
head=head->next;
}
by using this piece of code we will reach at the last node, but now head is pointing to the last node and we will lost all node before the last node of list, cause we know that head is always the first node of the list. so we have to maintain our head. that'a why we are using temp variable, after using temp variable head will be at the first node and temp will reach at the last node after execution of while loop.
one point we should keep in mind, in linked list "next" field of last node is always null.
till now we have created our list and reach at the end of the list and head is pointing to the first node of the list and temp is pointing to the last node of the list.
step3: now create a new node which we will insert at the end of the list.
struct Node *newNode = new Node();//new node is created
newNode->val = 5;
newNode->next=NULL;
now we have new node also.
final step: In this step we will link our new node to last node of the list(where the temp is).
we know temp is at last node, and to link new node to last node of the list we will simply put the address of new node into the last node of the list. and we know that information about last node is currrently in our temp variable.
temp->next = newnode.
this means we have put the address of newnode into the next field of last node of the list.
now we have a node linked with our list.
full code:
#include<bits/stdc++.h>
using namespace std;
struct Node{
int val;
struct Node *next;
};
int main(){
int n;
cout<<"enter the number of Nodes:";
cin>>n;struct Node* head = NULL;
struct Node* temp;
int m;
while(n--){
cout<<"enter the data into nodes:";
cin>>m;if(head==NULL){
head = new Node();//creating a node
head->val = m; // assigning value
head->next=NULL;
temp=head;//updating temp
}
else{
struct Node *temp1 = new Node();//creating a node
temp1->val = m;//assigning value
temp1->next = NULL;
temp->next = temp1; // linking temp with newly created node(temp1)
temp=temp1;// shifting temp to newly created node(temp1)
}
}
struct Node *temp = head;
while(temp->next != NULL){
temp=temp->next;
}
struct Node* newNode = new Node();
newNode->val = 5;
newNode->next = NULL;
temp->next = newNode();
while(head!=NULL){
cout<<head->val<<" ";
head=head->next;
}
}
Comments
Post a Comment