Given a linked list, remove the nth node from the end of list and return its head.
For example,
Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the linked list becomes 1->2->3->5.Note:Given n will always be valid.
answer:class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode * PRe, * now, * post; now = head; pre = now; post = now; for(int i = 1; i <= n; i ++){ post = post->next; } while(post != NULL){ pre = now; now = now->next; post = post->next; } if(pre == now){ head = head->next; return head; } pre->next = now->next; return head; }};
新闻热点
疑难解答