//输入链表头节点,奇数长度返回中点,偶数长度返回下中点的Java代码怎么写
时间: 2023-04-03 13:00:30 浏览: 85
以下是 Java 代码实现:
public ListNode getMiddleNode(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 是链表节点的定义,包含一个 val 属性和一个 next 属性,表示节点的值和下一个节点的指针。
相关问题
//输入链表头节点,奇数长度返回中点,偶数长度返回上中点的Java代码怎么写
以下是 Java 代码:
public ListNode getMiddleNode(ListNode head) {
if (head == null) {
return null;
}
ListNode slow = head;
ListNode fast = head;
while (fast != null && fast.next != null) {
slow = slow.next;
fast = fast.next.next;
}
return slow;
}
其中,ListNode 是链表节点的定义,包含一个 val 属性和一个 next 属性,表示节点的值和下一个节点的指针。
输入链表头节点,奇数长度返回中点,偶数长度返回上中点;输入链表头节点,奇数长度返回中点,偶数长度返回下中点的Java代码分别怎么写?
可以回答这个问题。
Java代码实现:
//定义链表节点
class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public class Solution {
public ListNode middleNode(ListNode head) {
ListNode slow = head;
ListNode fast = head;
while (fast != null && fast.next != null) {
slow = slow.next;
fast = fast.next.next;
}
return slow;
}
public ListNode middleNode2(ListNode head) {
ListNode slow = head;
ListNode fast = head;
while (fast != null && fast.next != null) {
slow = slow.next;
fast = fast.next.next;
}
if (fast != null) {
slow = slow.next;
}
return slow;
}
}
其中,middleNode方法返回的是链表的中点,如果链表长度为偶数,则返回上中点;middleNode2方法返回的是链表的中点,如果链表长度为偶数,则返回下中点。
阅读全文
相关推荐









