private Node getOpposite(Node n){
	int cur = n.getIndex();
	int par = n.getParent().getIndex();
	try{
		if(cur == par + dim && cur / dim < dim - 1) return nodeMap[cur+dim];
		if(cur == par - dim && cur / dim > 0) return nodeMap[cur-dim];
		if(cur == par + 1 && cur % dim < dim - 1) return nodeMap[cur+1];
		if(cur == par - 1 && cur % dim > 0) return nodeMap[cur-1];		
	}catch(Exception e){}
	return null;
    }