ох, кто тебя так учил писать? для начала все названия классов с большой буквы должны быть
private class node //создаем сам класс
нет, ничего ты тут не создаешь, а на самом деле описываешь какую то структуру, объект
public node root; //Создаём объект
нет, ничего ты тут не создаешь, а только объявил переменную
System.out.println(root.value); //Null pointer exception
ну естественно, root не был же создан у текущего объекта. А тут в общем то и в принципе нет кода для его задания
научись дебажить уже и разберись в самой элементарной терминологии, и хорошо бы все цепочку вызовов показать. Пытаешься список сделать? так в интернете же море примеров, разбирай