Node LCAWithPLink(Node p, Node q){
		int pHight = getHightWithPLink(p);
		int qHight = getHightWithPLink(q);
		int dHight;
		Node deeperNode, higherNode;
		if(pHight>qHight){
			dHight = pHight - qHight;
			deeperNode = p;
			higherNode = q;
		}else{
			dHight = qHight - pHight;
			deeperNode = q;
			higherNode = p;
		}
		for (int i = 0; i < dHight; i++) {
			deeperNode = deeperNode.parent;
		}
		while(deeperNode != null && higherNode != null){
			if(deeperNode == higherNode){
				return deeperNode;
			}
			deeperNode = deeperNode.parent;
			higherNode = higherNode.parent;
		}
		return null; //not in same tree?
	}