1 /**
2 * struct ListNode {
3 * int val;
4 * struct ListNode *next;
5 * ListNode(int x) : val(x), next(nullptr) {}
6 * };
7 */
8 class Solution {
9 public:
10 /**
11 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
12 *
13 *
14 * @param head ListNode类
15 * @param val int整型
16 * @return ListNode类
17 */
18 ListNode* deleteNode(ListNode* head, int val) {
19 // write code here
20 if(head==NULL)
21 {
22 return NULL;
23 }
24 if(head->val==val)
25 {
26 return head->next;
27 }
28 ListNode* p=head;
29 ListNode* q=p;
30 ListNode* temp=q;
31 while(p!=NULL)
32 {
33 if(p->val==val)
34 {
35 temp->next=temp->next->next;
36
37 return q;
38 }
39 else
40 {
41 temp=p;
42 p=p->next;
43 }
44 }
45 return q;
46 }
47 };