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;
}
京公网安备 11010502036488号