https://leetcode.com/problems/remove-nth-node-from-end-of-list/
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
int cnt=0;
ListNode* node=head;
while(node){
cnt+=1;
node=node->next;
}
int index=cnt-n; //from index 0
if(index==0){ //特殊情况
head=head->next;
}
else{
node=head;
while(--index){ //先自减
node=node->next;
}
node->next=node->next->next;
}
return head;
}
};