最后解释一遍快慢指针法解带圈链表问题 << Ashes of Time



最后解释一遍快慢指针法解带圈链表问题 « Ashes of Time

题目是说有一个链表,里面可能有个圈。判断是否有圈以及若有,找圈的起点。

这题我假设读者都知道快慢指针解法。现在来讲一下快慢指针解法为什么work。

将链表部分看做一段带结的绳子,将圈部分看作一个带结的圈,将绳子绕在圈上,使得结点一一对应 (绳子可能更长,请自行想象)。

这样我们的快慢指针其实就有了两种位置,一种是圈上的位置,一种是实际链表上的位置 (0-8, 1-9, 2-10, 3-11…)。

快慢指针从同一点出发,它们在实际链表中相遇时,其圈位置必然和起点一样 (从0出发,最后必在8处相遇)。

这时候我们让慢指针继续走,并且在绳子开头再开始走一个慢指针,这俩指针的圈位置一直都是相同的,所以它们在实际链表中如果相遇,一定是圈和绳子的共有节点 (一个从0出发,一个从8出发,必在4处相遇)。

以上。


Read full article from 最后解释一遍快慢指针法解带圈链表问题 « Ashes of Time


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts