【java】链表:遍历一遍找到mid node
题目:
给一个单链表,不知道大小,要求只遍历一遍,找到单链表的中间节点。
方法:
使用双指针,快指针每次走两个,慢指针每次走一个。
当快指针走到头,走到null时,慢指针走到中间位置。
// 遍历一遍找到中间节点
public int findMid() {
Node fast=head;
Node slow=head;
while((fast!=null)&&(fast.next!=null)) {
fast=fast.next.next;
slow=slow.next;
}
return slow.data;
}
链表创建节点
public class Node {
public int data;
public Node next;
public Node(int value){
data=value;
}
}