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

Tree Traversal in JAVA (InOder/preOrder/postOrder)

Tree Traversal in JAVA (InOder/preOrder/postOrder):- Tree traversal can be done through three ways. 1)Inorder:- Go recursively to the left node. Read a node Go recursively to the right node. 2)Pre Order. Read a node Go recursively to the left node. Go recursively to the right node. 2)Post Order. Go recursively to the left node. Go recursively to the right node. Read a node public void inorder ( Node root ) { if ( root == null ) { return ; } inorder ( root . left ); System . out . print ( root . data + "," ); inorder ( root . right ); } public void preOrder ( Node root ) { if ( root == null ) { return ; } System . out . print ( root . data + "," ); preOrder ( root . left ); preOrder ( root . right ); } public void postOrder ( Node root ) { if ( root == null ) { return ; } postOrder ( root . left ); postOrder ( root . right ); Sy

How to build a project in eclipse with MAVEN build tool?

How to build a project in eclipse with MAVEN build tool? Step 1:- Install maven and set the path in my computer. Once path is set for java and maven you will get a screen With version installed in your system. Step 2:- Write a command mvn archetype:generate to build a project of your choice.This will give you a option to select a project from list. Step 3:- As soon as this operation will complete maven give you choice to choose project.Search for maven-archetype-webapp this will build a web project with basic structure. Step4:- Follow the below procedure to give name , version ,package ,artifact and group id of your choice. Step 5:- You will get screen with build success.Congrats your project is build in directory. Step 6: Go in the directory to check for the folders automatically created by maven. You will get pom file and src folder and the package folder. Step:-7  Move to the directry having pom.xml and run mvn ecl