public List<String> formCircle(String input[]){
        List<String> result = new ArrayList<String>();
        //since chain is a circle any point can be the start point of the chain.
        //We make input[0] as start point
        result.add(input[0]);
        boolean used[] = new boolean[input.length];
        boolean r = formCircle(input,result,used,input[0].charAt(0));
        if(!r){
            return Collections.emptyList();
        }
        return result;
    }
http://www.geeksforgeeks.org/given-array-strings-find-strings-can-chained-form-circle/
Test cases:
Empty input
1 element in input
no chain formed
chain formed
src/com/interview/recursion/ChainWordsToFormCircle.java