class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
//先遍历一遍链表查表长
int length = 0;
ListNode* pointer = head;
while (pointer != nullptr)
{
length++;
pointer = pointer->next;
}
if (length == n)//删头节点的话返回第二个节点
return head->next;
int delNum = length - n + 1;//待删除节点的序号
ListNode* L = head;
ListNode* R = head->next;//双指针方便删除
while (delNum > 2)
{
L = R;
R = R->next;
delNum--;
}
L->next = R->next;
delete R;
return head;
}
};
leetcode-19. 删除链表的倒数第 N 个结点
最新推荐文章于 2024-07-25 11:15:54 发布