private ArrayList<Node<Word>> levelOrderTraversal(Node<Word> rt)
	{
		int index = 0;
		ArrayList<Node<Word>> nodes, result;
		nodes = new ArrayList<Node<Word>>();
		result = new ArrayList<Node<Word>>();
		Node<Word> current = rt;
		nodes.add(current);

		while (index < Math.pow(2,height()+1)-1)
		{
			current = (Node<Word>) nodes.get(index);

			if(current != null)
			{
				nodes.add(current.left());
				nodes.add(current.right());
				result.add(current);
			}
			else
			{
				nodes.add(null);
				nodes.add(null);
				result.add(null);
			}
			index++;
		}
		return result;
	}