public static void main(String[] args) {
    RemoveNthList rn = new RemoveNthList();

    ListNode<Integer> last = new ListNode<Integer>(5, null);
    ListNode<Integer> node4 = new ListNode<Integer>(4, last);
    ListNode<Integer> node3 = new ListNode<Integer>(3, node4);
    ListNode<Integer> node2 = new ListNode<Integer>(2, node3);
    ListNode<Integer> root = new ListNode<Integer>(1, node2);
    System.out.println(root.toString());
    System.out.println(rn.solution(root, 3).toString());
  }
  public ListNode<Integer> solution(ListNode<Integer> listnode, int n) {

    ListNode<Integer> lnSecond = listnode;
    ListNode<Integer> lnFirst = listnode;
    for (int i = 0; i < n; i++) {
      lnSecond = lnSecond.next();
    }
    if (n == 0) {
      return listnode;
    }
    if (lnSecond == null) {
      System.out.println(listnode.next().getVal());
      return listnode.next();

    } else {
      while (lnSecond.next() != null) {
        lnSecond = lnSecond.next();
        lnFirst = lnFirst.next();
      }
      lnFirst.setNext(lnFirst.next().next());
      return listnode;
    }
  }