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

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

Career in software engineering : Roles to know

when someone starts a career in software engineering there are plenty of options. Although most graduates have the same degree, everyone starts in a different role. Developer / Coder - Engineers in this role get a chance to actually implement and write software. At the start of a career mostly it is about fixing defects in existing software then taking small changes to the software and eventually getting to the point to handle and implement more complex changes.  Quality analysts / Quality engineers - Engineers in this role test and automate software. This is a challenging role where one has to know about the full functionality of the software and test accurately so the software built is of high quality. This role also involves the automation of test cases and preparing a test suite that can be run and detect issues automatically. Release Engineers - Once the software is built and tested release engineers are responsible for pushing a set of code to production. A production is a ...