// Adding elements public void add(String element) { // For first element Head is null. So, create a new node and mark it as head. // and increase numElements if(head == null){ head = new StringNode(element, null); numElements++; } else { // if not, find its place first. // then create a node and mark position link to new node // mark new node as link to positional node StringNode node = head; while(node.getLink() != null){ if(node.getData().compareTo(element) < 0){ break; } } StringNode newNode = new StringNode(element, null); newNode.setLink(node.getLink()); node.setLink(newNode); numElements++; } } // Removing elements public boolean remove(String target) { StringNode targetNode = head; boolean found = false; while (targetNode!= null && !found) { if(targetNode.getData().equalsIgnoreCase(target)) found = true; else targetNode = targetNode.getLink(); } if(found) { // copy the head to targetNode // and then advance head to the next node. targetNode.setData(targetNode.getLink().getData()); targetNode.setLink(targetNode.getLink()); numElements --; } return found; } Solution // Adding elements public void add(String element) { // For first element Head is null. So, create a new node and mark it as head. // and increase numElements if(head == null){ head = new StringNode(element, null); numElements++; } else { // if not, find its place first. // then create a node and mark position link to new node // mark new node as link to positional node StringNode node = head; while(node.getLink() != null){ if(node.getData().compareTo(element) < 0){ break; } } StringNode newNode = new StringNode(element, null); newNode.setLink(node.getLink()); node.setLink(newNode); numElements++; } } // Removing elements public boolean remove(String target) { StringNode targetNode = head; boolean found = false; while (targetNode!= null && !found) { if(targetNode.getData().equalsIgnoreCase(target)) found = true; else targetNode = targetNode.getLink(); } if(found) { // copy the head to targetNode // and then advance head to the next node. targetNode.setData(targetNode.getLink().getData()); targetNode.setLink(targetNode.getLink()); numElements --; } return found; }.