Click here to download the IntelliJ project for this exercise. Alternatively, you can find all the exercices on this git repository
This exercise is already available in your IntelliJ as a project.
What you need to do is described in the comments at the top of the file in src/main/java/
.
package algorithms; /** * Question: * * You are asked to clean a increasing sorted linked List (see the TODO below) * Cleaning the linkedList means keeping only one occurrence of each value. * * For instance cleaning: 3,3,3,4,5,5,6,6,6,7,9,9,9,9,10,10 * Gives: 3,4,5,6,7,9,10 * * Your algorithm should execute in Theta(n) * where n are the number of elements in the original list * */ public class CleanLinkedList { Node first = null; Node last = null; public void add(int v) { // TODO } public void add(int ... values) { for (int v: values) { add(v); } } /** * Given the increasingly sorted list, it removes the duplicates * @return an increasingly sorted list containing the same set * of elements as list but without duplicates. */ public CleanLinkedList clean() { // TODO return null; } class Node { int v; Node next; Node(int v, Node next) { this.v = v; this.next = next; } } }
- Instruction provided at the top of the source file on IntelliJ.
- Debug using small and easy unit tests provided in junit tests, it can also help to clarify the instructions.