I need to fill a binary tree using only class Node with recursion. However when I try to use left and right children I get a NullPointerException. How should I fix it?
public class Node {
    private Integer key;
    public Node right;
    public Node left;
    public void addValue(Integer value) {
        if (key == null) {
            key = value;
            right = null;
            left = null;
        } else {
            if (key > value) {
                left.addValue(value);
                left.right = null;
                left.left = null;
            } else {
                right.addValue(value);
                right.right = null;
                right.left = null;
            }
        }
    }
}
public class Main {
public static void main(String[] args) {
    Node node = new Node();
    node.addValue(5);
    node.addValue(4);
    node.addValue(3);
    node.addValue(2);
    node.addValue(1);
}
}
