Arvore

Olá a todos,

Estou a tentar criar uma classe que permita construir uma árvore de letras. Mas não estou a conseguir testar se por exemplo a árvore já contém uma determinada palavra (indicada pelo utilizador). Também quero poder acrescentar uma palavra à árvore.
Alguém me pode dar algumas indicações?

Envio-vos aqui o meu código com alguns comentários:

import java.io.*; 
import java.util.*; 

public class ArvoreLetra
{ 
	char letra; 
	boolean fimPalavra; 
	ArrayList letrasSeguintes; 
    
/* constructor */ 
	ArvoreLetra(char c)
	{ 
		letra = c; 
		fimPalavra = false; 
		letrasSeguintes = new ArrayList(); 
	}
	
	
	/* permite modificar a variável fimPalavra 
	para indicar se uma subArvore corresponde ou não ao fim de uma palavra*/ 
	void setFimPalavra(boolean b)
	{ 
		fimPalavra = b; 
	}
	
	
	/*testa si a árvore corresponde ao fim de uma palavra, ultima letra*/ 
	boolean isFinDeMot()
	{ 
		return fimPalavra; 
	}
	
	
	/* testa se o caractere c é uma das letras a seguir à letra corrente */ 
	boolean contemLetra(char c)
	{ 
		for (int i=0; i<letrasSeguintes.size(); i++)
		{ 
			ArvoreLetra a = (ArvoreLetra)letrasSeguintes.get(i); 
			if (a.letra == c) return true; 
		} 
		return false; 
	}

	
	/* retorna a subArvore (letra seguinte) que corresponde ao caractere c */ 
	ALettre getSubArvore(char c)
	{ 
		for (int i=0; i<letrasSeguintes.size();i++)
		{ 
			ArvoreLetra a = (ArvoreLetra)letrasSeguintes.get(i); 
			if (a.letra == c) return a; 
		} 
		return null; 
	}

	

	/*void acrescentarPalavra(String palavra)
	{ 
		 
	}

	
	boolean contemPalavra(String palavra)
	{ 
       
	}*/
    

}

Obrigado a todos.