Objectif : supprimer les éléments de liste chaînée
(Partage de vidéos d'apprentissage : vidéo d'enseignement Java)
Introduction au problème :
Supprimez tous les nœuds de la liste chaînée qui sont égaux à la valeur donnée * "val*".
Exemple de description :
示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5
Idées de solutions au problème :
L'une est basée sur la méthode du nœud sentinelle, l'autre est basée sur la méthode de collecte Java, qui est essentiellement la même
Mise en œuvre du programme :
import java.util.*; public class RemoveElementsTest3 { public static void main(String[] args) { ListNode l1 = new ListNode(1); ListNode l2 = new ListNode(2); ListNode l3 = new ListNode(6); ListNode l4 = new ListNode(3); ListNode l5 = new ListNode(4); ListNode l6 = new ListNode(5); ListNode l7 = new ListNode(6); l1.next = l2; l2.next = l3; l3.next = l4; l4.next = l5; l5.next = l6; l6.next = l7; ListNode listNode = removeElements2(l1, 6); System.out.println("listNode = " + listNode); } public static ListNode removeElements(ListNode head, int val) { ListNode dummyNode = new ListNode(0); ListNode currentNode = dummyNode; while (head != null) { if (head.val != val) { currentNode.next = head; currentNode = currentNode.next; } head = head.next; } currentNode.next = null; return dummyNode.next; } public static ListNode removeElements2(ListNode head, int val) { List<Integer> list = new LinkedList<>(); while (head != null) { list.add(head.val); head = head.next; } List<Integer> tempList = new ArrayList<>(); tempList.add(val); list.removeAll(tempList); ListNode dummyNode = new ListNode(0); ListNode tempNode = dummyNode; for (int i = 0, size = list.size(); i < size; i++) { ListNode listNode = new ListNode(list.get(i)); tempNode.next = listNode; tempNode = tempNode.next; } return dummyNode.next; } }
Résumé :
En fait, après avoir écrit ceci, je pense que c'est facile à comprendre si vous regardez la logique de mise en œuvre de l'ensemble du programme. Il n'y a rien de mal à cela. Les points difficiles doivent être déduits. Si vous ne comprenez pas, vous pouvez déboguer le programme donné plusieurs fois. Le contenu affiché à chaque fois n'est affiché qu'après son exécution réussie.
Recommandations associées : Tutoriel d'introduction à Java
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!