1. 程式人生 > 其它 >演算法之刪除連結串列的節點並返回頭指標

演算法之刪除連結串列的節點並返回頭指標

 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 };