思路:
先将单链表遍历一遍,记录单链表的长度,找到删除结点的位置,删除。
注意:
这里是单链表,应该判断是否删除的是头结点,如果是,则更新头结点,并返回头结点的位置。
class Solution {
public:
ListNode *removeNthFromEnd(ListNode *head, int n) {
if (head == NULL || n < 0)
return NULL;
ListNode* p = head;
ListNode* pCur = head;
int num = 0;
while (pCur)
{
pCur = pCur->next;
num++;
}
if (num == n)//删除的是头结点