给定一个链表,若其中包含环,则输出环的入口节点。
若其中不包含环,则输出null。 给定如上所示的链表: 输入:[1, 2, 3, 4, 5, 6] 输出:2 注意,这里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。 则输出环的入口节点3.
时间复杂度O(n)
class Solution { public ListNode entryNodeOfLoop(ListNode head) { if(head == null){ return null; } ListNode fast = head; ListNode slow = head; while(fast.next.next != null && slow.next != null){ fast = fast.next.next; slow = slow.next; if(fast.val == slow.val){ fast = head; while(fast.next != null && slow.next != null){ fast = fast.next; slow = slow.next; if(fast.val == slow.val){ return slow; } } } } return null; } }