import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * * @param head ListNode类 * @param n int整型 * @return ListNode类 */ public ListNode removeNthFromEnd (ListNode head, int n) { // 先找到倒数第n个节点 ListNode fast = head; for (int i = 0; i < n && fast != null; i++) { fast = fast.next; if (fast == null && i < n - 1) { return head; } } // 哑结点 ListNode dummy = new ListNode(-1); dummy.next = head; // 前序节点 ListNode pre = dummy; // 当前节点 ListNode cur = head; while (fast != null) { fast = fast.next; pre = cur; cur = cur.next; } pre.next = cur.next; return dummy.next; } }