Check Linked List Has Cycle - Coding in A Smart Way



Check Linked List Has Cycle - Coding in A Smart Way

Written by truongkhanh on Problem: Check Linked List Has Cycle Given a linked list, check if it has cycle. For example, in the below figure, the first linked list does not have cycle while the second linked list has. Discussion Linked list with cycle may cause the program having infinite iteration. Therefore, checking linked list with cycle is required. The most straightforward approach is during iterating the list, given a node, we check whether that node exists before. If we use a Set data structure to store the visited nodes, the program runs in O(N) and uses O(N) memory. If we do not use Set, we can make a second iteration from the beginning of the list to check whether that node is visited before. Thus, the program runs in O(N2) and use O(1) memory. In this post, I will introduce you a new technique which is often used to solve many problems in linked list. We will use 2 running pointers during the iteration to check if linked list has cycle. As discussed,

Read full article from Check Linked List Has Cycle - Coding in A Smart Way


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