recursive trigger occurs when code is executed again and again and exceeds CPU time. To avoid it create a class with a static Boolean variable which return true or false value by default it return true value:
public Class checkRecursive{
private static boolean run = true;
public static boolean runOnce(){
if(run){
run=false;
return true;
}
else
{
return run;
}
}