public List<List<String>> findLadders1(String start, String end, Set<String> dict) {
        List<List<String>> result = new ArrayList<List<String>>();
        dict.add(start);
        dict.add(end);
        HashSet<String> visited = new HashSet<String>();
        ArrayList<String> current = new ArrayList<String>();
        current.add(start);
        visited.add(start);
        HashMap<String, ArrayList<String>> adj = new HashMap<String, ArrayList<String>>();
        find(start, end, dict, visited, current, result, adj);
        return result;
    }