Learn-dsa..in 30 days!



























CC-8 : Delete nodes of SingleLinkedList.

Description:

Given an input SingleLinkedList, and an input array of integers toDelete, delete all nodes in SingleLinkedList that’s data value is same as one of integers in toDelete.

Test cases and expected outputs:

Input Parameters Expected outputs
3->4->7->9->11->15->17->21->23->25
toDelete: 4,11,21
3->7->9->15->17->23->25
3->4->7->9->11->15->17->21->23->25
toDelete: 3,25
4->7->9->11->15->17->21->23

Pseudocode:

Move all integers in toDelete to an HashSet toDeleteSet for easier access.
Traverse through each node of input SingleLinkedList:
If the currentNode’s data value is present in toDeleteSet, remove currentNode from SingleLinkedList.

Code:

public void singleLinkedListDeleteNode(SingleLinkedListNode toDelete) throws Exception{
	SingleLinkedListNode nextNode=toDelete.getNextNode();
	System.out.println("Next Node Data"+nextNode.getNodeData());
	toDelete.setNodeData(nextNode.getNodeData());
	System.out.println("Delete Node Data after getting data from next node"+toDelete.getNodeData());
	toDelete.setNextNode(nextNode.getNextNode());
	System.out.println("Next node of to Delete after getting data from next node"+toDelete.getNextNode());
	nextNode.setNextNode(null);
	return;
}

Click here to download and run code and test cases !