Supprimer le nœud java dans la liste liée

Veuillez écrire une fonction pour supprimer un nœud (non final) donné dans une liste liée. Le seul paramètre passé dans la fonction est le nœud à supprimer.

Il existe une liste chaînée - head = [4,5,1,9], qui peut être exprimée comme suit:
Insérez la description de l'image ici

Exemple 1:

Entrée: head = [4,5,1,9], node = 5
Sortie: [4,1,9]
Explication: Étant donné le deuxième nœud dont la valeur est 5 dans votre liste chaînée, puis après avoir appelé votre fonction, La liste chaînée devrait être 4 -> 1 -> 9.
Exemple 2:

Entrée: head = [4,5,1,9], node = 1
Output: [4,5,9]
Explication: Étant donné le troisième nœud dont la valeur est 1 dans votre liste chaînée, puis après avoir appelé votre fonction, La liste chaînée devrait être 4 -> 5 -> 9.

rapide:

La liste liée contient au moins deux nœuds.
Les valeurs de tous les nœuds de la liste liée sont uniques.
Le nœud donné n'est pas le nœud final et doit être un nœud valide dans la liste liée.
Ne renvoyez aucun résultat de votre fonction.

Source: LeetCode (LeetCode)
Lien: https://leetcode-cn.com/problems/delete-node-in-a-linked-list
Copyright est la propriété de LeetCode . Pour les réimpressions commerciales, veuillez contacter l'autorisation officielle. Pour les réimpressions non commerciales, veuillez indiquer la source.

Idée: Au début de cette question, mon idée était de trouver la précédente car la valeur est la seule, puis de supprimer celle spécifiée. En conséquence, j'ai cherché pendant un moment et j'ai constaté que la tête n'était pas entrée . J'ai été stupéfait pendant un moment, alors je suis allé chercher. La solution du problème, par conséquent, il y a une solution au problème de casse-tête. C'est en effet une nouvelle idée, et la complexité en temps est également faible. Le seul inconvénient qui est pas un inconvénient est qu'il ne peut pas être le nœud de queue.

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    
    
    public void deleteNode(ListNode node) {
    
    
        node.val = node.next.val;
        node.next = node.next.next;

    }
}

Je suppose que tu aimes

Origine blog.csdn.net/weixin_43824233/article/details/112604596
conseillé
Classement