7.使用LinkedList。自己练习一道题,使用LinkedList常用的方法。java代码
时间: 2024-03-10 09:48:57 浏览: 62
好的,这里提供一个使用LinkedList解决的题目:链表的中间结点。
题目描述:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
示例:
```
输入:1 -> 2 -> 3 -> 4 -> 5 -> null
输出:3 -> 4 -> 5 -> null
```
思路:使用快慢指针,慢指针每次移动一步,快指针每次移动两步,当快指针到达链表末尾时,慢指针就到达了链表的中间位置。
代码实现:
```java
public ListNode middleNode(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode slow = head;
ListNode fast = head;
while (fast != null && fast.next != null) {
slow = slow.next;
fast = fast.next.next;
}
return slow;
}
```
其中ListNode是自定义的链表节点类,具体实现如下:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
```
阅读全文