设计一个算法,找出二叉树上任意两个结点的最近共同父结点。
复杂度如果是O(n2)则不得分。
public static int FindCommonParent(BiTreeNode node, BiTreeNode a, BiTreeNode b, int count){
if(node != null && count != 2){
if(node == a || node == b)
count++;
int left = FindCommonParent(node.l,a,b,count);
int right = FindCommonParent(node.l,a,b,count);
if(left == 2 || right == 2){
System.out.println("Common parent:" + node.data.toString());
return 2;
}
else return left > right ? left : right;
}
return count;
}