public TreeNode lca(TreeNode root, TreeNode a, TreeNode b) {
		TreeNode left = null;
		TreeNode right = null;
		if (root == null || root == a || root == b) {
			return root;
		}
		left = lca(root.left, a, b);
		right = lca(root.right, a, b);
		if (left != null && right != null) {
			return root;
		} else {
			if (left != null) {
				return left;
			} else {
				return right;
			}
		}
	}