Implementing find middle element of singly linked list without using 2 pointers There is a solution floating around about using 2 pointers. But I decide to keep the implementation much simpler by using basic constructs that works use to build basic methods of a singly list list data structure.

The code works. My question is, am I off the hook from making it better as long as the code works? Is the code sufficient?

 public Object findMiddleElement()
        {
            Node node = head;

            if(size % 2 != 0)
            {
                for(int i = 0; i &lt; size/2 ;i++ )
                {
                    node = node.getNext();


                }
            }
            else
            {
                    System.out.println("there is no middle element");
                    node.setElement(null);;

            }
                    return node.getElement();
        }
It could be a little easier to read like this:

public Object findMiddleElement() {
    Node node = head;

    if(hasMiddleElement()) {
        for(int i = 0; i &lt; size / 2; i++) {
            node = node.getNext();
        }
    } else {
        System.out.println("there is no middle element");
        node.setElement(null);
    }
    return node.getElement();
}

private boolean hasMiddleElement() {
   return size % 2 == 1;
}


This works if size is set in the class.