public void DFSforG(int nodeIndex) {
		// push to stack, and mark explored;
		pushToStack(nodeIndex);
		nodesStatus.set(nodeIndex);

		// find next node this node has an directed edge to,that's not explored
		// yet and do DFS on it, startBit to mark the index from which we
		// should search for next neighbor node in the bitSet
		int toNode = -1;
		LinkedList<Integer> neighbors = originalGraph.get(nodeIndex);
		for (int i = 0; i < neighbors.size(); i++) {
			toNode = neighbors.get(i);
			if (!nodesStatus.get(toNode)) { // if neighbor has not been explored
				DFSforG(toNode);
			}

		}

		popFromStack();
		sccsOfLeader.get(curLeader).add(nodeIndex);

	}