A program is linearly recursive if there is at most one recursive call made in any execution/path of function body.
Examples
int myfunc(int a){
if (a < 0) return a;
return myfunc(a-1);
}int myfunc(int a){
if (a < 0) return a;
if (a % 2 == 0){
return myfunc(a-1);
}
else{
return myfunc(a-2);
}
}