- Delete the nth to mth nodes in the linked list
cat-only-icon
CAT Only
中文English
Given a linked list, delete the nth to mth nodes in the linked list, and return the head node of the linked list.
Example
Example 1:
Input: head = 1->2->3->4->5->null, n = 1, m = 2
Output: 1->4->5->null
Example 2:
Input: head = 1->2->3->4->5->null, n = 1, m = 4
Output: 1->null
Notice
The label starts from 00
The length of the list does not exceed 100000
解法1:
代码如下:
/**
* Definition of singly-linked-list:
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param head: The first node of linked list
* @param n: the start index
* @param m: the end node
* @return: A ListNode
*/
ListNode * deleteNode(ListNode * head, int n, int m) {
if (!head || n > m) return NULL;
ListNode * dummyHead = new ListNode(0);
dummyHead->next = head;
ListNode * prevNode = dummyHead;
int index = 0;
while(head) {
if (index == n - 1) {
prevNode = head;
} else if (index == m + 1) {
prevNode->next = head;
break;
}
head = head->next;
index++;
}
return dummyHead->next;
}
};