# C# - Insert a new node at the end of the Linked List

In this method, a new node is inserted at the end of the linked list. For example - if the given List is 10->20->30 and a new element 100 is added at the end, the Linked List becomes 10->20->30->100.

Inserting a new node at the end of the Linked List is very easy. First, a new node with given element is created. It is then added at the end of the list by linking the last node to the new node.

The function *push_back* is created for this purpose. It is a **6-step process**.

public void push_back(int newElement) { //1. allocate node Node newNode = new Node(); //2. assign data element newNode.data = newElement; //3. assign null to the next of new node newNode.next = null; //4. Check the Linked List is empty or not, // if empty make the new node as head if(head == null) { head = newNode; } else { //5. Else, traverse to the last node Node temp = new Node(); temp = head; while(temp.next != null) temp = temp.next; //6. Change the next of last node to new node temp.next = newNode; } }

The below is a complete program that uses above discussed concept to insert new node at the end of the linked list.

using System; //node structure class Node { public int data; public Node next; }; class LinkedList { Node head; public LinkedList(){ head = null; } //Add new element at the end of the list public void push_back(int newElement) { Node newNode = new Node(); newNode.data = newElement; newNode.next = null; if(head == null) { head = newNode; } else { Node temp = new Node(); temp = head; while(temp.next != null) temp = temp.next; temp.next = newNode; } } //display the content of the list public void PrintList() { Node temp = new Node(); temp = this.head; if(temp != null) { Console.Write("The list contains: "); while(temp != null) { Console.Write(temp.data + " "); temp = temp.next; } Console.WriteLine(); } else { Console.WriteLine("The list is empty."); } } }; // test the code class Implementation { static void Main(string[] args) { LinkedList MyList = new LinkedList(); //Add three elements at the end of the list. MyList.push_back(10); MyList.push_back(20); MyList.push_back(30); MyList.PrintList(); } }

The above code will give the following output:

The list contains: 10 20 30