---
# System prepended metadata

title: 1474. Delete N Nodes After M Nodes of a Linked List
tags: [Leetcode, Linked List, Easy]

---

# 1474. Delete N Nodes After M Nodes of a Linked List
###### tags: `Leetcode` `Easy` `Linked List`
Link: https://leetcode.com/problems/delete-n-nodes-after-m-nodes-of-a-linked-list/
## 思路
1. 设置p指针为head
2. p指针尝试走m-1格，到达保留区的最后一个位置。如果走不到那里，就终止整个程序。
3. 设置q指针为p，然后尝试走n格，到达删除区的最后一个位置。如果走到了，p->next = q->next；否则 p->next = NULL，终止整个程序。
4. 设置p = p->next，重复2的循环。
## Code
```java=
class Solution {
    public ListNode deleteNodes(ListNode head, int m, int n) {
        ListNode p = head, q = head;
        while(p!=null && q!=null){
            for(int i=0; i<m-1; i++){
                p = p.next;
                if(p==null) break;
            }
            if(p==null) break;
            q = p;
            for(int i=0; i<n; i++){
                q = q.next;
                if(q==null) break;
            }
            if(q==null){
                p.next = null;
                break;
            }
            else{
                p.next = q.next;
                p = p.next;
            }
        }
        return head;
    }
}
```