Maison > développement back-end > Golang > le corps du texte

Comment supprimer des nœuds de liste chaînée en langage Go

王林
Libérer: 2023-01-11 09:23:19
original
3301 Les gens l'ont consulté

La méthode de suppression des nœuds de liste chaînée en langage Go : déplacez d'abord la valeur du nœud suivant vers le nœud actuellement supprimé ; puis modifiez le Next du nœud actuel, tel que [node.Next = node.Next ; .Suivant].

Comment supprimer des nœuds de liste chaînée en langage Go

L'environnement d'exploitation de cet article : système Windows10, GO 1.11.2, ordinateur Thinkpad T480.

Méthode spécifique :

Solution optimale :

Déplacez la valeur du nœud suivant vers le nœud actuellement supprimé, puis modifiez le Next

node.Val = node.Next.Val
node.Next = node.Next.Next
Copier après la connexion

de le nœud actuel Autres méthodes :

p.next = p.next.next peut atteindre l'objectif de suppression

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func deleteNode(head *ListNode, val int) *ListNode {
    if head.Val == val{
        return head.Next
    }

    pre:=head   
    for head.Next.Val != val{
        head = head.Next
    }
    head.Next = head.Next.Next
    return pre
}
Copier après la connexion

Question :

Supprimer un nœud dans une liste chaînée
Veuillez écrire une fonction afin qu'elle puisse supprimer un nœud donné (non final) dans une liste chaînée, vous ne recevrez que le nœud dont la suppression est demandée.

Il existe une liste chaînée existante – head = [4,5,1,9], qui peut être exprimée comme suit :

Comment supprimer des nœuds de liste chaînée en langage Go

Exemple 1 :

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

Entrée : head = [4,5,1,9], node = 1
Sortie : [4,5,9]
Explication : étant donné le troisième nœud avec une valeur de 1 dans votre liste chaînée, alors après avoir appelé votre fonction, la liste chaînée devrait devenir 4 -> ; 9.

Code

Faites toujours attention pour atteindre l'objectif de suppression

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func deleteNode(node *ListNode) {
	for node.Next.Next != nil {
		node.Val = node.Next.Val
		node = node.Next
	}
	node.Val = node.Next.Val
	node.Next = nil
}
Copier après la connexion

Recommandations associées :Tutoriel Golang

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal