LeetCode-刪除鏈表中的節點

刪除鏈表中等于給定值 val 的所有節點。

示例:
輸入: 1->2->6->3->4->5->6, val = 6
輸出: 1->2->3->4->5


這道題目,只需判斷節點的值是否與給出的值相等,刪除即可。不過需要考慮到,刪除頭結點的問題,需要一個頭指針來指向頭結點;還需知道,每個節點的前驅,方便刪除后的連接。

struct ListNode* removeElements(struct ListNode* head, int val) {
    struct ListNode* s = (struct ListNode*)malloc(sizeof(struct ListNode));
    s->next = head;
    struct ListNode* p = s;
    struct ListNode* q = s->next;
    
    while(q){
        if(q->val == val){
            p->next = q->next;
        }else{
            p = q;
        }
        q = q->next; 
    }
    return s->next;
}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容