I'm trying to add an element to the circular linked list but it throws NullPointerException whenever I try to access the node. Here's my code: EDIT: I already read the post explaining NullPointerExceptions but nothing worked.
public class CircularLinkedList<T> {
static private class Node<T> {
    public T data;
    public Node<T> next;
    Node(T data, Node<T> next) {
        this.data = data;
        this.next = next;
    }
}
private Node<T> first;
public void addFirst(T x){
    if (first.data.equals(null)){
        first.data = x;
        first.next = first;
    }else{
        Node<T> second = first;
        first.data = x;
        first.next = second;
    }
}
EDIT: I already initialized the Node with private Node<T> first = new Node(null, null);, keeps throwing the error. Also compared with first.data == null, now it terminates the process.
EDIT:Here's the full code:
public class CircularLinkedList<T> {
    static private class Node<T> {
        public T data;
        public Node<T> next;
        Node(T data, Node<T> next) {
            this.data = data;
            this.next = next;
        }
    }
    private Node<T> first = new Node(null, null);
    public void addFirst(T x){
        if (first.data == null){
            first.data = x;
            first.next = first;
        }else{
            Node<T> second = first;
            first = new Node(x, second);
        }
    }
    public void print() {
        while (first.data == null) {
            System.out.println(first.data);
            first = first.next;
        }
    }
    public static void main(String[] args) {
        CircularLinkedList<String> lst = new CircularLinkedList<String>();
        lst.addFirst("Z");
        lst.addFirst("A");
        lst.addFirst("B");
        lst.print();
    }
}
 
    