Java实现寻找链表的中间节点

来源:互联网 发布:如何自学软件编程 编辑:程序博客网 时间:2024/05/28 01:35

利用快慢指针:

设置两个指针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);}}