public ListNode removeNthFromEnd_lint(ListNode head, int n) {
        if (head == null || n == 0)
            return head;
        ListNode fast = head, slow = head;
        while (n-- > 0) {
            fast = fast.next;
        }
        if (fast == null)
            return slow.next;
        while (fast.next != null) {
            slow = slow.next;
            fast = fast.next;
        }
        slow.next = slow.next.next;
        return head;
    }