删除单链表倒数第n个节点
删除链表的倒数第n个节点
http://www.nowcoder.com/questionTerminal/f95dcdafbde44b22a6d741baf71653f6
思路:首先遍历一次得到链表长度 len , 要删除的结点便是正数第(len - n)个。考虑删除头结点(len - n == 0)的特例,直接返回head->next,否则遍历到第(len - n)- 1个结点,将其指向 ->next->next,返回head。
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode *cur = head;
int len = 0;
while(cur != nullptr){
cur = cur->next;
++len;
}
if(len == n) return head->next;
cur = head;
while(len - n > 1){
cur = cur->next;
--len;
}
ListNode *temp = cur->next;
return head;
} 
