Java實現尋找連結串列的中間節點
阿新 • • 發佈:2019-01-04
利用快慢指標:
設定兩個指標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); } }