链接:https://leetcode-cn.com/problems/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.
Example 1:
1 2
| Input: head = [1,2,3,4,5], n = 2 Output: [1,2,3,5]
|
Example 2:
1 2
| Input: head = [1], n = 1 Output: []
|
Example 3:
1 2
| Input: head = [1,2], n = 1 Output: [1]
|
Constraints:
- The number of nodes in the list is sz.
- 1 <= sz <= 30
- 0 <= Node.val <= 100
- 1 <= n <= sz
解决了进阶问题: 一次循环解决问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { if(head->next == nullptr) return nullptr; ListNode* temp = head; ListNode* tail = temp->next; for(int i = 1; i < n && tail != nullptr; i++) tail = tail->next; if(tail == nullptr){ return head->next; } else{ while(tail->next != nullptr) { temp = temp->next; tail = tail->next; } temp->next = temp->next->next; return head; } } };
|