I am trying to output the list, I have prepended 3 strings to the list and it all outputs null. The code seems to prepend and output correctly, however it just doesn't output the data. The methods I am focusing on are prepend and toString.
`` public class StringList {
/* ------------------------------------------------------- * * Inner classes * * ------------------------------------------------------- */ /** * The node used by StringList. */ private class StrNode { String data; StrNode next; } /* ------------------------------------------------------- * * Instance variables * * ------------------------------------------------------- */ private StrNode head; // the head of the singly-linked list. /* ------------------------------------------------------- * * Instance methods * * ------------------------------------------------------- */ /** * No-argument constructor. */ public StringList() { head = null; } /** * Adds an item to the start of the list. * * @param s the item to add */ public void prepend(String s) { var newNode = new StrNode(); // TODO: Adds an item to the start of the list. if(head == null) { head = newNode; } else { newNode.next = head.next; head.next = newNode; } } /** * Adds an item to the end of the list. * * @param s the item to add */ public void append(String s) { // TODO: Adds an item to the end of the list. } /** * Inserts an item after the first instance of a key if the key exists. * * @param s the item to insert * @param key the item in the list to insert after * @return whether the insertion was successful */ public boolean insertAfter(String s, String key) { // TODO: Inserts an item after the first instance of a key if the key exists. return false; } /** * Deletes the first instance of an item from the list. * * @param key the value of the item to delete from the list. * @return whether the deletion was successful. */ public boolean delete(String key) { // TODO: Deletes the first instance of an item from the list. return false; } /** * Returns the value of the nth item in the list. * * @param n the zero-based index of the item to return * @return the value of the nth item */ public String get(int n) { // TODO: Returns the value of the nth item in the list. // Note: if n is out of bounds, raise an IndexOutOfBoundsException. return null; } /** * Returns the number of items in the list. * * @return the number of items in the list */ public int length() { // TODO: Returns the number of items in the list. int length = 0; StrNode current = head; while(current != null) { length++; current = current.next; } return length; } /** * Returns a string of all the items in the list separated by a space. * * The last item will have a space after it too. * * @return list of the list's values */ @Override public String toString() { // TODO: Returns a string of all the items in the list separated by a space. String result = "{"; StrNode current = this.head; while(current != null) { result += current.data + " "; current = current.next; } return result + "}"; } } ``
Driver: ``
public class Main { /** * @param args the command line arguments */ public static void main(String[] args) {
StringList s = new StringList(); s.prepend("one"); s.prepend("two"); s.prepend("three"); System.out.println(s); } }
``