LeetCode 19：Remove Nth Node From End of List

Given a linked list, remove the nth node from the end of list and return its head.

For example,

```   Given linked list: 1->2->3->4->5, and n = 2.

After removing the second node from the end, the linked list becomes 1->2->3->5.
```

Note:
Given n will always be valid.
Try to do this in one pass.

Java源码

`package com.maoxiaomeng;/** * @author lihui * @date 2018/3/26 12:31 */class ListNode {     int val;    ListNode next;    ListNode(int x) {         val = x;     }}public class Solution {    public ListNode removeNthFromEnd(ListNode head, int n) {        ListNode p = head;                int len = 0;        while (p != null) {            len++;            p = p.next;        }                int index = len - n;        ListNode pStr = head;        if (index < 0) {            return p;        } else if (index == 0) {            return pStr.next;        }        int i = 0;        /**         *  0->1->2->3->4->5->6->7->8->9         *                       i         */        while (pStr != null) {            if (i == index - 1) {                pStr.next = pStr.next.next;                break;            }            pStr = pStr.next;            i++;        }        return head;    }}`