GenericTreeNode<String> root1[] = null;
Эта строка эквивалентна этой:
GenericTreeNode<String>[] root1 = null;
, поэтому вы создаете переменную массива и инициализируете ее как null
root1[i] =new GenericTreeNode<String>(str);
, но здесь вы присваиваете значениеиндекс массива.
Это должно выдать NullPointerException
!!.
Вот как это сделать:
GenericTreeNode<String>[] root1 = new GenericTreeNode<String>[10];