Java Linkedlist recursion methods : so i couldnt understand the linkedlist Data structur and how the recursion works in it , it doesnt make sense to me at all , i mean i understand normal recursion but with linkedLists not at all 

i've seen many things on the net but they just don't explain how it exactly works so i would really apperciate if anyone could help me , the code is below is about a linkedList class with  A elements it has a head as A element and the rest of the list(tail) as another linkedList 

import java.util.function.Consumer;

import java.util.function.Function;

import java.util.function.Predicate;

public class LL<A>  {
  
private final A hd;

  private final LL<A> tl;

  public boolean isEmpty(){

    return hd==null&&tl==null;
  }

  public LL(A hd, LL<A> tl) {

    this.hd = hd;

    this.tl = tl;
  }

  public LL() {

    this(null,null);

  }


  
public int size() {

    if (isEmpty())

      return 0;

    return 1 + tl.size();

  }

  public A get(int i) {

    return i==0?hd:tl.get(i-1);

  }

LL<A> drop(int i){

		if(i==0) return this;

		if(i<0) return new LL<>();

		if(isEmpty()) return new LL<A>();


		return this.tl.drop(i-1);
	}

}

so for example this drop method creates a new LinkedList with the elements other than the first i Elements and i actually don't get how it works 
lets say if i make drop(1) on a linkedList what will it step by step do .
Thanks in advance :) sorry to bother