public void suffixTreeRec(ArrayList<String> SuffixList,TreeNode currentNode,int textSize)
    {
    	ArrayList<ArrayList<String>> currentGroupList = makeGroup(SuffixList);
    	//old
    	//for(int i=0;i<currentGroupList.size();i++)
    	//{
    		//new
    	while(currentGroupList.size()>0)
    	{
    		ArrayList<String> currentGroup = currentGroupList.get(0);
    		//old
    		//ArrayList<String> currentGroup=currentGroupList.get(i);
    		//Fall_1 Guppe enthält nur ein Element
    		if(currentGroup.size()==1)
    		{
    			currentNode.addLeaf(currentGroup.get(0),textSize);
    		}
    		//Fall_2 Gruppe enthält mehr als ein Element
    		else
    		{
    			int longestCommon=commonPrefix(currentGroup);
    			String labelToInnerNode=currentGroup.get(0).substring(0, longestCommon);
    			//currentNode.addChild(labelToInnerNode);
    			for(int index=0;index<currentGroup.size();index++)
    			{
    				currentGroup.set(index, currentGroup.get(index).substring(longestCommon));
    			}
    			TreeNode newChild = new TreeNode(currentNode,labelToInnerNode);
    			currentNode.addToChildHash(labelToInnerNode.charAt(0), newChild);
    			suffixTreeRec(currentGroup,newChild,textSize);
    		}
    		//NEW
    		currentGroupList.remove(0);
    	}
    }