链表的中间元素
public class FindMiddleNode {/* 867* 问题描述:找到链表的中间元素* 解题思路:* 1.先求链表长度再遍历到第二分之length的结点* 2.声明快指针p一次向后移动两步,慢指针q一次向后移动一步* 当快指针到表尾时,慢指针到表的中间位置。* 规定:只有一个或两个结点的情况下返回头结点* */public static void main(String[] args) {}
}class FindMiddleNodeSolution{public ListNode middleNode(ListNode head) {if(head==null||head.next==null) return head;ListNode fast = head;ListNode slow = head;while(fast!=null&&fast.next!=null) {fast = fast.next.next;slow = slow.next;}return slow;}
}