java代码设计使得 有一个长度大于2的整数单链表L,设计一个算法查找L中中间位置的元素。
时间: 2024-05-09 07:19:18 浏览: 6
以下是Java代码实现:
```
public class FindMiddleElement {
public static int findMiddle(ListNode head) {
ListNode slow = head;
ListNode fast = head;
while (fast != null && fast.next != null) {
slow = slow.next;
fast = fast.next.next;
}
return slow.val;
}
public static void main(String[] args) {
ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
head.next.next.next = new ListNode(4);
head.next.next.next.next = new ListNode(5);
int middle = findMiddle(head);
System.out.println("Middle element: " + middle); // Output: Middle element: 3
}
}
class ListNode {
int val;
ListNode next;
public ListNode(int val) {
this.val = val;
}
}
```
我们使用两个指针slow和fast,初始值都指向链表头节点。然后,我们让slow每次向后移动一个位置,fast每次向后移动两个位置。当fast到达链表尾部时,slow所指向的位置就是链表的中间位置。最后,我们返回slow所指向的节点的值即可。
在我们的示例中,链表的中间位置是元素3,因此输出为3。