Add nodes at different positions of linked list

PHOTO EMBED

Sat Jun 04 2022 10:10:20 GMT+0000 (Coordinated Universal Time)

Saved by @Ranjan_kumar #c++

#include<bits/stdc++.h>
using namespace std;

class node{
   public:
   int data;
   node* next;
   
   node(int val){
      data=val;
      next=NULL;
   }
};

void nodeathead(node* &head, int val)
{
   node* p=new node(val);
   p->next=head;
   head=p;
}
void nodeatlast(node* &head,int val)
{
   node* l=new node(val);
   if(head==NULL)
   {
      head=l;
      return;
   }
   
   node* temp=head;
   while(temp->next!=NULL)
   {
      temp=temp->next;
   }
   temp->next=l;
}

void nodeafter(node* &head,int key,int val)
{
   node* l=new node(val);
   node* temp=head;
   while(temp->data!=key)
   {
      temp=temp->next;
      if(temp==NULL)
      {
         return;
      }
   }
   l->next=temp->next;
   temp->next=l;
}

void print(node* &head)
{
   node* l=head;
   while(l!=NULL)
   {
      cout<<l->data<<" ";
      l=l->next;
      
   }
}
int main()
{
   node* head = new node(45);
   nodeathead(head,9);
   nodeathead(head,8);
   nodeathead(head,6);
   nodeathead(head,3);
   nodeatlast(head,98);
   nodeatlast(head,977);
   nodeafter(head,6,7);
   nodeafter(head,977,988);
   print(head);
   return 0;
}
content_copyCOPY

https://www.geeksforgeeks.org/linked-list-set-2-inserting-a-node/