题解 | #链表中环的入口结点#
链表中环的入口结点
https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } */ public class Solution { public ListNode EntryNodeOfLoop(ListNode pHead) { if (pHead==null || pHead.next==null) return null; ListNode fast = pHead; ListNode slow = pHead; while (fast!=null && fast.next!=null) { fast=fast.next.next; slow=slow.next; // 快慢相遇,说明成环 if (fast==slow) { ListNode tmp = pHead; while (tmp!=slow) { tmp=tmp.next; slow=slow.next; } return tmp; } } return null; } }
解题思想:
* 方式一:借助set
* 方式二:快慢指针
#算法##算法笔记#