PHP - Delete the first node of the Linked List
In this method, the first node of the linked list is deleted. For example - if the given list is 10->20->30->40 and the first node is deleted, the list becomes 20->30->40.
Deleting the first node of the Linked List is very easy. If the head is not null then create a temp node pointing to head and move head to the next of head. Then delete the temp node.
The function pop_front is created for this purpose. It is a 3-step process.
public function pop_front() { if($this->head != null) { //1. if head is not null, create a // temp node pointing to head $temp = $this->head; //2. move head to next of head $this->head = $this->head->next; //3. delete temp node $temp = null; } }
The below is a complete program that uses above discussed concept of deleting the first node of the linked list.
<?php //node structure class Node { public $data; public $next; } class LinkedList { public $head; public function __construct(){ $this->head = null; } //Add new element at the end of the list public function push_back($newElement) { $newNode = new Node(); $newNode->data = $newElement; $newNode->next = null; if($this->head == null) { $this->head = $newNode; } else { $temp = new Node(); $temp = $this->head; while($temp->next != null) { $temp = $temp->next; } $temp->next = $newNode; } } //Delete first node of the list public function pop_front() { if($this->head != null) { $temp = $this->head; $this->head = $this->head->next; $temp = null; } } //display the content of the list public function PrintList() { $temp = new Node(); $temp = $this->head; if($temp != null) { echo "The list contains: "; while($temp != null) { echo $temp->data." "; $temp = $temp->next; } echo "\n"; } else { echo "The list is empty.\n"; } } }; // test the code $MyList = new LinkedList(); //Add four elements in the list. $MyList->push_back(10); $MyList->push_back(20); $MyList->push_back(30); $MyList->push_back(40); $MyList->PrintList(); //Delete the first node $MyList->pop_front(); $MyList->PrintList(); ?>
The above code will give the following output:
The list contains: 10 20 30 40 The list contains: 20 30 40