(leetcode)Linked List Cycle II
2014-08-19 22:00
369 查看
Linked List Cycle II
题目描述:
Given a linked list, return the node where the cycle begins. If there is no cycle, return
题目分析:
在上一篇博文中是直接判断链表是否有环路,而这个题目加深难度,要求找环路开始节点。其实,在上一篇算法的基础上,先找到快指针与慢指针相遇的节点,然后一个指针指向这个节点,这个指针与头指针同步向后一步一步移动,直到两指针相遇,那么相遇的节点就是环路开始的节点。
题目描述:
Given a linked list, return the node where the cycle begins. If there is no cycle, return
null.
题目分析:
在上一篇博文中是直接判断链表是否有环路,而这个题目加深难度,要求找环路开始节点。其实,在上一篇算法的基础上,先找到快指针与慢指针相遇的节点,然后一个指针指向这个节点,这个指针与头指针同步向后一步一步移动,直到两指针相遇,那么相遇的节点就是环路开始的节点。
public ListNode detectCycle(ListNode head) { if(head==null||head.next==null) return null; ListNode p1=head; ListNode p2=head; while(p1!=null&&p2!=null&&p2.next!=null){ p1=p1.next; p2=p2.next.next; if(p1==p2) break; } if(p2!=null&&p2.next!=null){ while(head!=p1){ head=head.next; p1=p1.next; } return p1; } return null; }
相关文章推荐
- LeetCode:Linked List Cycle II
- LeetCode:Linked List Cycle II
- LeetCode | Linked List Cycle II
- LeetCode | Linked List Cycle II
- LeetCode之Linked List Cycle II
- leetcode - Linked List Cycle II
- [Leetcode 141 & 142, medium] Linked List Cycle (I and II)
- [LeetCode] - Linked List Cycle II
- [leetcode]Linked List Cycle II
- LeetCode: Linked List Cycle II
- [算法][LeetCode]Linked List Cycle & Linked List Cycle II——单链表中的环
- [LeetCode] Linked List Cycle II
- Leetcode: Linked List Cycle II
- [LeetCode]Linked List Cycle II
- [leetcode]Linked List Cycle II
- Leetcode Linked List Cycle II
- leetcode: Linked List Cycle II
- Leetcode: Linked List Cycle II
- LeetCode - Linked List Cycle II
- leetcode Linked List Cycle II