Skip to main content

Finding a loop in a linked List

Finding a loop in a linked List:-

public class LinkedListLoop {

 //Two pointers
 public Node loopCheck(Node head)
 {
  //fast pointer take two steps at a time
  Node fastptr=head;
  //slow pointer take one step at a time
  Node slowptr=head;
  
  if(head==null)
  {
   System.out.println("no loops empty list");
  }
  
  //Till any pointer becomes null
  while(slowptr!=null && fastptr!=null && fastptr.next!=null)
  {
   slowptr=slowptr.next;
   fastptr=fastptr.next.next;
   
   //if both pointers point to same node
   //possible only in loop list
   if(slowptr==fastptr)
   {
    System.out.println("loopfound");
    fastptr=head;
    while(fastptr.next!=slowptr)
    {
     fastptr=fastptr.next;
    }
     return fastptr;
   }
  }
  System.out.println("loop not found");
   return head;
 }
 
 public void makeCycle(Node head)
 {
  Node temp=head;
  while(temp.next.next!=null)
  {
   temp=temp.next;
  }
  temp.next=head.next.next;
 }
 
 
}

Comments

.

Popular posts from this blog

Selection Sort in JAVA

What is selection sort? It is a sorting technique that is based on the partitioning of array into two parts, sorted and unsorted. The process is:- 1) Find minimum element in unsorted array. 2) Swap the element at the end of sorted array. when i=0 we don't have any sorted array so element will be replaced from first element later the sorted array end will growas the index. Steps:- underline elements are sorted array, the length is increasing with each minimum element added at the end. minimum element11 11 25 12 22 64 minimum element12 11 12 25 22 64 minimum element22 11 12 22 25 64 minimum element25 11 12 22 25 64 minimum element64 11 12 22 25 64 Program:- package sorting ; public class SelectionSort { //function to print array public static void print ( int [] arr ) { for ( int i = 0 ; i <= arr . length - 1 ; i ++) System . out . print ( " " + arr [ i ]); System . out . printl

Best LeetCode Lists for Interviews

Here is a list of some of the best questions asked in interviews:-  Must do 75 https://leetcode.com/list/5hkn6wze/ Must do 60  https://leetcode.com/list/5eie1aqd/ Must do medium:-  https://leetcode.com/list/5xaelz7g/ Must do Easy:-   https://leetcode.com/list/5r7rxpr1/ Graph:-  https://leetcode.com/list/x18ervrd/  Dynamic Programming:-    https://leetcode.com/list/x14z0dxr/  FaceBook interviews:- https://leetcode.com/list/xyu98pv6/  Amazon Interviews:-  https://leetcode.com/list/5hkniyf7/  Google Interviews:- https://leetcode.com/list/xyu9xfo1/ https://github.com/nazarmubeen/TopProblems/blob/master/README.md