1. 程式人生 > >Java實現尋找連結串列的中間節點

Java實現尋找連結串列的中間節點

利用快慢指標:

設定兩個指標slow和fast,兩個指標同時向前走,fast指標每次走兩步,slow指標每次走一步,直到fast指標走到最後一個結點時,此時slow指標所指的結點就是中間結點。

public class l連結串列中間節點 {
	public static void main(String[] args){
		int[] array = {1,2,3,4,5,6,7,8,9,10,11,12,13};
		ListNode head = ListNode.arrayToList(array);
		ListNode.printList(head);
		findMid(head);
	}

	private static void findMid(ListNode head) {
		ListNode slow = head;
		ListNode fast = head;
		while(fast.next != null){
			if(fast.next.next != null){
				fast = fast.next.next;
				slow = slow.next;
			} else {
				slow = slow.next;
			}
			
		}
		System.out.println(slow.val);
	}
}