先遍历一下整个链表的长度count,
然后用count-n+1计算待删除的结点在链表的位置
如何找到该结点的前一个结点
temp.next = temp.next.next进行删除
public static ListNode removeNthFromEnd(ListNode head, int n) {
ListNode temp = head;
int count = 1;
for(int i = 0; temp.next != null; i++) {
temp = temp.next;
count++;
}
int x = count - n + 1;
if(x == 1) {
head = head.next;
return head;
}else {
temp = head;
count = 1;
while(count != x-1) {
temp = temp.next;
count++;
}
temp.next = temp.next.next;
return head;
}
}

这篇博客详细介绍了如何在链表中删除倒数第n个节点的算法实现。首先遍历链表获取其长度,然后根据长度计算待删除节点的位置。如果要删除的是头节点,直接更新头节点;否则,从头开始再次遍历,找到目标节点的前一个节点并将其next指向目标节点的下一个节点,从而完成删除操作。
802

被折叠的 条评论
为什么被折叠?



