给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。
注意事项
链表中的节点个数大于等于n
样例
给出链表1->2->3->4->5->null和 n = 2.
删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.
解题思路:先遍历一遍查一下有都少元素,找到正数第几个然后删除
class Solution {
public:
/**
* @param head: The first node of linked list.
* @param n: An integer.
* @return: The head of linked list.
*/
ListNode *removeNthFromEnd(ListNode *head,int n){
int flag=0;
ListNode *pre=head,*pne=head;
while(pre!=NULL){
pre=pre->next;
flag++;
}
int t=flag-n;
if(t==0)return head->next;
t-=1;
while(t--)pne=pne->next;
pne->next=pne->next->next;
return head;
}
};