public char findCircleStart() {
		circularLinkedListNode p1 = head;
		circularLinkedListNode p2 = head;

		// find meeting point
		for (int i = 0; i < nodeCount; i++) {
			p1 = p1.next;
			p2 = p2.next.next;

			if (p1.item == p2.item)
				break;
		}

		p1 = head;
		while (p1.item != p2.item) {
			p1 = p1.next;
			p2 = p2.next;
		}
		
		return p1.item;
	}