X734: Linked Chain Find Node Before Value

Consider the following class definitions:

public class LinkedChain<T> {
    private Node<T> firstNode;
    private int numberOfEntries;

    public LinkedChain() {
        firstNode = null;
        numberOfEntries = 0;
    }// end default constructor


    public Node<T> getfirstNode() {
        return firstNode;
    }


    public int getNumberOfEntries() {
        return numberOfEntries;
    }



    public void push(T newEntry) {
        // TODO Auto-generated method stub
        firstNode = new Node<T>(newEntry, firstNode);
        numberOfEntries++;
    }
}

Where Node is defined as:

public class Node<T> {
     private T data; // Entry in bag
     private Node<T> next; // Link to next node

     public Node(T dataPortion) {
         this(dataPortion, null);
     } // end constructor


     public Node(T dataPortion, Node<T> nextNode) {
         data = dataPortion;
         next = nextNode;
     } // end constructor


     public T getData() {
         if (data != null) {
             return data;
         }
         return null;
     }


     public Node getNext() {
         return next;
     }


     public void setNext(Node<T> newNext) {
         next = newNext;
     }
}

Below, write a Linked Chain method that will return a reference to the node before the last node in the chain that equals to a given parameter (otherwise return null) - could do this with a look ahead or runner technique. Make sure to account for edge cases including if the linked chain is empty be sure to return null. Likewise, return null if the only match is in the first node.

For example: Assuming you had a chain of

1-->2-->3-->4

and a parameter of 3, this method would need to return the node where data=2

However: Assuming you had a chain of

1-->2-->3-->4

and a parameter of 1, this method would need to return null

Your Answer:

Reset
Visualize
Next exercise

Feedback

Your feedback will appear here when you check your answer.