English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java complete list of examples
In this example, we will learn how to get the middle element of a linked list in Java in one iteration.
To understand this example, make sure you first visit the following tutorial,
class LinkedList { //Create an object of the Node class //Represents the head of the list Node head; //Static inner class static class Node { int value; //Connect each node to the next node Node next; Node(int d) { value = d; next = null; } } public static void main(String[] args) { //Créer un objet LinkedList LinkedList linkedList = new LinkedList(); //Assigner des valeurs à chaque noeud de la liste chaînée linkedList.head = new Node(1); Node second = new Node(2); Node third = new Node(3); //Connecter chaque noeud de la liste chaînée au noeud suivant linkedList.head.next = second; second.next = third; //Imprimer la liste chaînée Node pointer = linkedList.head; System.out.print("LinkedList : " while (pointer != null) { System.out.print(pointer.value + "); pointer = pointer.next; } // Trouver l'élément moyen Node ptr1 = linkedList.head; Node ptr2 = linkedList.head; while (ptr1.next != null) { //ptr1Augmente2,ptr2Augmente1 //Si ptr1Pointe vers l'élément final //ptr2Pointe vers l'élément moyen ptr1 = ptr1.next; if(ptr1.next != null) { ptr1 = ptr1.next; ptr2 = ptr2.next; } } System.out.println("\nÉlément moyen : " + ptr2.value); } }
Output result
LinkedList : 1 2 3 Élément moyen : 2
Dans cet exemple, nous avons implémenté la structure de données de liste chaînée en Java. Ensuite, nous avons trouvé l'élément moyen de la liste chaînée dans une boucle. Notez le code,
while (ptr1.next != null) { //ptr1Augmente2,ptr2Augmente1 //Si ptr1Pointe vers l'élément final //ptr2Pointe vers l'élément moyen ptr1 = ptr1.next; if(ptr1.next != null) { ptr1 = ptr1.next; ptr2 = ptr2.next; } }
Ici, nous avons deux variables ptr1et ptr2。 Nous utilisons ces variables pour parcourir la liste chaînée.
Dans chaque itération, ptr1Accède à deux noeuds, tandis que ptr2Accède à un seul noeud de la liste chaînée.
Maintenant, lorsque ptr1Lorsque ptr atteint la fin de la liste chaînée,2Se trouve au milieu. De cette manière, nous pouvons obtenir la position moyenne de la liste chaînée en une seule itération.
import java.util.LinkedList; class Main { public static void main(String[] args){ //Création de la liste chaînée en utilisant la classe LinkedList LinkedList<String> animals = new LinkedList<>(); //Add elements to LinkedList animals.add("Dog"); animals.addFirst("Cat"); animals.addLast("Horse"); System.out.println("LinkedList: ") + animals) //Access the middle element String middle = animals.get(animals.size())/2); System.out.println("Middle element: ") + middle); } }
Output result
LinkedList: [Cat, Dog, Horse] Middle element: Dog
In the above example, we used the LinkedList class to implement the linked list data structure. Note the expression
animals.get(animals.size())/2)
size()/ 2 - Return the position of the middle element
get() - Return the element at the middle position