This blog will soon be merged with

JavaByPatel

which explains each solution in detail, to visit new blog, click JavaByPatel

Sunday, 24 May 2015

How to find middle element of linked list in one pass in java.


package linkedlist.singly;

public class GetMiddleOfLinkList {

 Node startNode;
 public static void main(String[] args) {
  new GetMiddleOfLinkList();
 }

 public GetMiddleOfLinkList() {
  Node temp1 = new Node(50);
  Node temp2 = new Node(20);
  Node temp3 = new Node(10);
  Node temp4 = new Node(30);
  Node temp5 = new Node(80);
  Node temp6 = new Node(40);
  Node temp7 = new Node(50);
  Node temp8 = new Node(50);

  temp1.setNext(temp2);
  temp2.setNext(temp3);
  temp3.setNext(temp4);
  temp4.setNext(temp5);
  temp5.setNext(temp6);
  temp6.setNext(temp7);
  temp7.setNext(temp8);

  startNode = temp1;
  Node temp = getMiddle(startNode);
  System.out.println(temp.getData());
 }


 private Node getMiddle(Node startNode) {
  if(startNode==null){
   return startNode;
  }

  Node pointer1=startNode;
  Node pointer2=startNode;
  while(pointer2!=null && pointer2.getNext()!=null && pointer2.getNext().getNext()!=null){
   pointer1 = pointer1.getNext();
   pointer2 = pointer2.getNext().getNext();

  }
  return pointer1;
 }

}



No comments:

Post a Comment