链表算法:
1.给定一个链表,但是不知道链表大小,要求遍历一次,找到链表的中间位置
方法:快慢指针法
定义两个指针都指向head节点,fast指针每次移动两步,slow指针每次移动一步,当fast不能再往后走时,slow此时指向的是中间值
代码:
//找到链表的中间值
public Node findMid() {
//定义快指针fast
Node fast = head;
//定义慢指针slow
Node slow = head;
while ((fast != null)&&(fast.next!=null)) {
fast = fast.next.next;
slow = slow.next;
}
return slow;
}