跳到主要内容

876.链表的中间结点

链接:876.链表的中间结点
难度:Easy
标签:链表、双指针
简介:给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。

题解 1 - java

  • 编辑时间:2020-02-13
  • 内存消耗:39.8MB
  • 编程语言:java
  • 解法介绍:使用快慢指针,若快指针到达 null 则满指针到达中间。
class Solution {
public ListNode middleNode(ListNode head) {
if(head.next==null||head==null) {
return head;
}
if(head.next.next==null) {
return head.next;
}
ListNode slowListNode=head;
ListNode fastListNode=head.next;
while(fastListNode!=null&&fastListNode.next!=null) {
slowListNode=slowListNode.next;
fastListNode=fastListNode.next.next;
}
if(fastListNode==null) {
return slowListNode;
}else {
return slowListNode.next;
}
}
}