/**
* 求链表的中间节点
* 快慢指针原理(快指针每次走2个节点,慢指针走1个节点,当快指针走到尾部时,慢指针当前的节点,就是中间节点,)
* 链表长度为偶数时,会有2个中间节点,可以自行选择要前一个中间节点或者后一个中间节点
* @param node
* @return
*/
public static Node middleNode(Node node){
if(node == null || node.getNext() == null){
return node;
}
Node slow = node;
Node fast = node.getNext();
while (fast != null && fast.getNext()!=null){
slow = slow.getNext();
fast = fast.getNext().getNext();
}
return slow;
}
网友评论