1. 程式人生 > 實用技巧 >單鏈表應用(2)--使用快慢指標,如何判斷是否有環,環在哪個節點

單鏈表應用(2)--使用快慢指標,如何判斷是否有環,環在哪個節點

//單鏈表的使用:快慢指標,如何判斷是否有環,環在哪個節點
    public static void main(String[] args) {
        Node<Integer> node1 = new Node(1,null);
        Node<Integer> node2 = new Node(2,null);
        Node<Integer> node3 = new Node(3,null);
        Node<Integer> node4 = new Node(4,null);
        Node
<Integer> node5 = new Node(5,null); Node<Integer> node6 = new Node(6,null); node1.next = node2; node2.next = node3; node3.next = node4; node4.next = node5; node5.next = node6; node6.next = node4; //產生環 Node quick = node1.next.next; Node low
= node1.next; while (!quick.equals(low)){ quick = quick.next.next; low = low.next; } System.out.println("有環,繼續找環"); Node low2 = node1; while (!low2.equals(low)){ low = low.next; low2 = low2.next; } System.out.println(
"環的節點值是:" + low2.t); } private static class Node<T>{ private T t; private Node next; public Node(T t, Node next) { this.t = t; this.next = next; } }