- 问题描述
返回链表中间结点
如果链表中元素有偶数个, 则返回两个中的第二个. - 解决思路
①设置两个结点, 都指向链表头结点
②一个结点一次走两步, 一个一次走一步,当快的结点走到最后一个节点或为空时, 慢结点所指的位置就是链表中间结点 - 源代码
public class ListNode {
int val;
ListNode next;
public ListNode(int val) {
this.val = val;
}
}
class Solution {
public ListNode middleNode(ListNode head) {
ListNode slow = head;
ListNode fast = head;
while (fast != null && fast.next != null) {
fast = fast.next.next;
slow = slow.next;
}
return slow;
}
}