public TreeNode searchFirstCommonAncestor(TreeNode a, TreeNode b) {
		ArrayList<TreeNode> pathA = searchReturnPath(tree.root, a,
				new ArrayList<TreeNode>());
		ArrayList<TreeNode> pathB = searchReturnPath(tree.root, b,
				new ArrayList<TreeNode>());
		TreeNode tmp=tree.root;
		int i=0;
		while(true){
			if(i>=pathA.size() || i>=pathB.size())
				return null;
			if(pathA.get(i)==pathB.get(i)){
				tmp=pathA.get(i);
			}
			else{
				break;
			}
			i++;
		}

		return tmp;
	}