In this program we will get a linked list that may contain loops and we have to find out if the loop exists and then what is the size of the loop. Let us use a very famous method to find the length of a loop with the help of code and discuss its time and space complexity.
Problem Introduction
In this question, as we saw above, we are given a linked list which may or may not contain a loop, if the loop exists, we have to find the length of the loop, otherwise we have to return zero, because There is no loop. We will use the Floyd loop method to find loops and then check their size. For example, if we are given a linked list -
List: 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8
There is a cycle from the node containing 8 to the node containing 4, which means 8 is connected with 4, forming a cycle of length 5, we have to detect it.
method
In this question, we will use the Floyd loop method to detect loops, and then we will use the concept of length lookup to find the length of the loop. Let's look at the basic steps of the problem first, and then we'll move on to the Freudian method and the length method.
First, we will create a class to provide the basic structure of the linked list nodes and define a constructor in it to initialize the node values.
Then we create a function to push elements into the given linked list.
We create a linked list using the above method and then link the last node to another node to form a loop within it.
Freud’s Algorithm
In this algorithm, we traverse the linked list. Once we enter the linked list, we cannot exit from any node. This means that if we have two pointers in the circular part of the linked list and one pointer moves one node at a time and the other moves two nodes at a time, they will meet at some point.
After implementing the algorithm, we will call the function and check if the loop exists
If there is a loop, we will call the anther function to find the length of the loop.
On the other hand, we will go back and print that there is no loop.
Example
In the following example, we define a linked list and add 8 nodes to it. We form a loop in the linked list by connecting node 8 to node 4. Therefore, it forms a loop of five nodes.
// class to provide the structure to the linked list node class Node{ constructor(data) { this.value = data this.next = null; } } // function to add values in a linked list function push(data, head) { var new_node = new Node(data); if(head == null) { head = new_node; return head; } var temp = head while(temp.next != null) { temp = temp.next; } temp.next = new_node; return head; } // function to find the length in the loop function length(loop_node) { var count = 1; var temp = loop_node; while(temp.next != loop_node) { count++; temp = temp.next; } console.log("The length of the loop in the given linked list is: " + count); } // function to find the cycle in the given list // if the cycle is found then call the length function function find_node(head) { var slow_ptr = head; var fast_ptr = head; while(slow_ptr != null && fast_ptr != null && fast_ptr.next != null) { slow_ptr = slow_ptr.next; fast_ptr = fast_ptr.next.next; if(slow_ptr == fast_ptr) { length(slow_ptr); return; } } console.log("There is no loop present in the given linked list"); } var head = null; head = push(1,head) head = push(2,head) head = push(3,head) head = push(4,head) head = push(5,head) head = push(6,head) head = push(7,head) head = push(8,head) // making loop in a linked list by connecting 8 to four var temp = head; while(temp.value != 4){ temp = temp.next; } var temp2 = head; while(temp2.next != null){ temp2 = temp2.next } temp2.next = temp // finding the length of the loop find_node(head)
Time and space complexity
In the above code, we only traverse the complete linked list once, and the loop part is traversed up to three times, which makes the time complexity linear. So the time complexity of the above code is linear, i.e. O(N), where N is the size of the linked list.
Since we are not using any extra space, the time complexity of the program is O(1).
in conclusion
In this tutorial, we have learned how to find the length of a loop present in a linked list by implementing the concept in JavaScript language. We used Floyd's loop finding algorithm to find a loop in a given linked list, and then we used a while loop to iterate through the loop and find its length. The time complexity of the above code is O(N) and the space complexity is O(1).
The above is the detailed content of JavaScript program to find the length of a loop in a linked list. For more information, please follow other related articles on the PHP Chinese website!

The main difference between Python and JavaScript is the type system and application scenarios. 1. Python uses dynamic types, suitable for scientific computing and data analysis. 2. JavaScript adopts weak types and is widely used in front-end and full-stack development. The two have their own advantages in asynchronous programming and performance optimization, and should be decided according to project requirements when choosing.

Whether to choose Python or JavaScript depends on the project type: 1) Choose Python for data science and automation tasks; 2) Choose JavaScript for front-end and full-stack development. Python is favored for its powerful library in data processing and automation, while JavaScript is indispensable for its advantages in web interaction and full-stack development.

Python and JavaScript each have their own advantages, and the choice depends on project needs and personal preferences. 1. Python is easy to learn, with concise syntax, suitable for data science and back-end development, but has a slow execution speed. 2. JavaScript is everywhere in front-end development and has strong asynchronous programming capabilities. Node.js makes it suitable for full-stack development, but the syntax may be complex and error-prone.

JavaScriptisnotbuiltonCorC ;it'saninterpretedlanguagethatrunsonenginesoftenwritteninC .1)JavaScriptwasdesignedasalightweight,interpretedlanguageforwebbrowsers.2)EnginesevolvedfromsimpleinterpreterstoJITcompilers,typicallyinC ,improvingperformance.

JavaScript can be used for front-end and back-end development. The front-end enhances the user experience through DOM operations, and the back-end handles server tasks through Node.js. 1. Front-end example: Change the content of the web page text. 2. Backend example: Create a Node.js server.

Choosing Python or JavaScript should be based on career development, learning curve and ecosystem: 1) Career development: Python is suitable for data science and back-end development, while JavaScript is suitable for front-end and full-stack development. 2) Learning curve: Python syntax is concise and suitable for beginners; JavaScript syntax is flexible. 3) Ecosystem: Python has rich scientific computing libraries, and JavaScript has a powerful front-end framework.

The power of the JavaScript framework lies in simplifying development, improving user experience and application performance. When choosing a framework, consider: 1. Project size and complexity, 2. Team experience, 3. Ecosystem and community support.

Introduction I know you may find it strange, what exactly does JavaScript, C and browser have to do? They seem to be unrelated, but in fact, they play a very important role in modern web development. Today we will discuss the close connection between these three. Through this article, you will learn how JavaScript runs in the browser, the role of C in the browser engine, and how they work together to drive rendering and interaction of web pages. We all know the relationship between JavaScript and browser. JavaScript is the core language of front-end development. It runs directly in the browser, making web pages vivid and interesting. Have you ever wondered why JavaScr


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SublimeText3 English version
Recommended: Win version, supports code prompts!

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Dreamweaver Mac version
Visual web development tools

Safe Exam Browser
Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.
