使用快慢指针
快指针先走n步,然后再和慢指针一起走,此时当快指针走完的时候,慢指针则刚好走到倒数的第n个结点。

    public ListNode removeNthFromEnd (ListNode head, int n) {
        // write code here
        ListNode pre = new ListNode(0);
        pre.next = head;
        ListNode start = pre;
        ListNode end = pre;
        while(n != 0){
            start =start.next;
            n--;
        }
        while(start.next != null){
            start = start.next;
            end = end.next;
        }
        end.next = end.next.next;
        return pre.next;

    }