Why is this failing please, i'm sorry if it has been answered before , i've tried looking but the codes vary so much and mine works so there must be something stupid i've missed. Thank you in advance the help on this site has definitely got me this far!
package com.codegym.task.task07.task0716;

import java.util.ArrayList;

/*
R or L

*/

public class Solution {
    public static void main(String[] args) throws Exception {
        boolean isTrue = false;
        ArrayList<String> list = new ArrayList<String>();
        list.add("rose"); //0
        list.add("lyre"); //2
        list.add("love"); //1


        list = fix(list);

        for (String s : list)
        {
            System.out.println(s);
        }
    }

      public static ArrayList<String> fix(ArrayList<String> list) {
        // write your code here
          ArrayList<String> listCopy = new ArrayList<String>();
          listCopy.addAll(list);
       for(int i = 0 ;i<list.size(); i++ )
       {
           if (listCopy.get(i).contains("l") && !(listCopy.get(i).contains("r"))){
               listCopy.add(listCopy.get(i));
           }

       }

       for (int j = 0; j<listCopy.size(); j++)
       {
           if(listCopy.get(j).contains("r") && !(listCopy.get(j).contains("l")))
               listCopy.remove(listCopy.get(j));
       }
          list.clear();
          list.addAll(listCopy);

        return list;
    }
}