public ListNode removeNthFromEnd (ListNode head, int n) { // write code here // 节点个数 int count = 0; // 当前节点 ListNode curNode = head; while (curNode != null) { count ++; curNode = curNode.next; } // 删除倒数第count个,即头节点 if (count == n) { head = head.next; return head; } // 重新指定当前节点 curNode = head; // 被删除节点的前一个节点 ListNode preNode = head; for (int i = 0; i < count - n; i++) { preNode = curNode; curNode = curNode.next; } preNode.next = curNode.next; return head; }