Java 程序在一次迭代中获取 LinkedList 的中间元素
javacampus interviewserver side programmingprogramming
在本文中,我们将了解如何在一次迭代中获取 linkedList 的中间元素。我们可以预期 java.util.LinkedList 类操作对双向链表执行的操作。索引到列表中的操作将从开头或结尾遍历列表,以更接近指定索引为准。
下面是相同的演示 −
假设我们的输入是 −
输入链接列表:100 200 330
期望输出将是 −
列表的中间元素是:200
算法
步骤 1 - 开始 步骤 2 - 声明一个 LinkedList,即 input_list。声明五个节点对象,即 head、first_node、second_node、pointer_1、pointer_2。 步骤 3 - 定义值。 步骤 4 - 使用 while 循环,遍历链接列表,通过使用 pointer_1 和 pointer_2 遍历列表来获取中间元素,直到 pointer_1.next 不为空。 步骤 5 - 显示 pointer_2 值作为结果。 步骤 6 - 停止
示例 1
在这里,我们将所有操作都绑定在‘main’函数下。
public class LinkedList { Node head; static class Node { int value; Node next; Node(int d) { value = d; next = null; } } public static void main(String[] args) { LinkedList input_list = new LinkedList(); input_list.head = new Node(100); Node second_node = new Node(200); Node third_node = new Node(330); input_list.head.next = second_node; second_node.next = third_node; Node current_node = input_list.head; System.out.print("The linked list is defined as: " ); while (current_node != null) { System.out.print(current_node.value + " "); current_node = current_node.next; } Node pointer_1 = input_list.head; Node pointer_2 = input_list.head; while (pointer_1.next != null) { pointer_1 = pointer_1.next; if(pointer_1.next !=null) { pointer_1 = pointer_1.next; pointer_2 = pointer_2.next; } } System.out.println("\nThe middle element of the list is: " + pointer_2.value); } }
输出
The linked list is defined as: 100 200 330 The middle element of the list is: 200
示例 2
在这里,我们将操作封装成展现面向对象编程的函数。
public class LinkedList { Node head; static class Node { int value; Node next; Node(int d) { value = d; next = null; } } static void get_middle_item(LinkedList input_list){ Node pointer_1 = input_list.head; Node pointer_2 = input_list.head; while (pointer_1.next != null) { pointer_1 = pointer_1.next; if(pointer_1.next !=null) { pointer_1 = pointer_1.next; pointer_2 = pointer_2.next; } } System.out.println("\nThe middle element of the list is: " + pointer_2.value); } public static void main(String[] args) { LinkedList input_list = new LinkedList(); input_list.head = new Node(100); Node second_node = new Node(200); Node third_node = new Node(330); input_list.head.next = second_node; second_node.next = third_node; Node current_node = input_list.head; System.out.print("The linked list is defined as: " ); while (current_node != null) { System.out.print(current_node.value + " "); current_node = current_node.next; } get_middle_item(input_list); } }
输出
The linked list is defined as: 100 200 330 The middle element of the list is: 200