2021-04-18 Daily-Challenge
Today is Sunday, I gonna review the tasks I've done this week, and finish today's leetcode's April LeetCoding Challenge with cpp.
April LeetCoding Challenge 18
Description
Remove Nth Node From End of List
Given the head of a linked list, remove the nth node from the end of the list and return its head.
Follow up: Could you do this in one pass?
Example 1:

Input: head = [1,2,3,4,5], n = 2
Output: [1,2,3,5]
Example 2:
Input: head = [1], n = 1
Output: []
Example 3:
Input: head = [1,2], n = 1
Output: [1]
Constraints:
- The number of nodes in the list is
sz. 1 <= sz <= 300 <= Node.val <= 1001 <= n <= sz
Solution
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode *newHead = new ListNode(-1, head);
ListNode *tail = newHead;
ListNode *del = newHead;
while(n--) tail = tail->next;
while(tail->next) {
tail = tail->next;
del = del->next;
}
del->next = del->next->next;
return newHead->next;
}
};