class Solution {
private int getLen(ListNode head) {
int len = 0;
while (head != null) {
head = head.next;
len++;
}
return len;
}
public ListNode removeNthFromEnd(ListNode head, int n) {
int len = getLen(head);
n = len - n + 1;
if (n == 1) {
return head.next;
}
ListNode p = head;
int i = 2;
while (i < n) {
p = p.next;
i++;
}
if (n == len) {
p.next = null;
} else {
p.next = p.next.next;
}
return head;
}
}
【链表】Leetcode 19. 删除链表的倒数第 N 个结点【中等】
2024-07-15 00:40:01 32 阅读