éléments de la liste de remove leetcode203--

Supprimer la liste est égale à une valeur donnée  val  tous les nœuds.

exemple:

Entrée: . 1-> 2-> 6-> 3-> 4-> 5-> 6, Val = 6.
 Rendement: 1-> 2-> 3-> 4-> 5

idées de résolution de problèmes:

Divisé en deux cas à considérer:

1, le premier élément est l'élément à supprimer;

2, le premier élément à des éléments non supprimés

Il doit être réalisé supprimer des éléments de suppression prochain point de devenir le prochain point à son prédécesseur

Code de mise en œuvre:

struct ListNode* removeElements(struct ListNode* head, int val){
    struct ListNode* cur = head;
    struct ListNode* del = head;
    struct ListNode* pre = head;
   while(head && head->val == val) {
       head = head->next;
       free(cur);
       cur = head;
   }
    while (cur) {
        if(cur->val == val) {
            del = cur;
            cur = cur->next;
            pre->next = cur;
            free(del);
        }
        else {
            pre = cur;
            cur = cur->next;
        }
    }
    return head;
}

Le résultat:

Publié 40 articles originaux · louange gagné 2 · Vues 588

Je suppose que tu aimes

Origine blog.csdn.net/scacacac/article/details/105237772
conseillé
Classement