var lowestCommonAncestor = function (root, p, q) {
let foundP = false;
let foundQ = false;
let res = find(root, p, q);
if (foundP && foundQ) return res;
return null;
function find(root, p, q) {
if (!root) return null;
let left = find(root.left, p, q);
let right = find(root.right, p, q);
// 重点:都在后序位置
if (root === p) {
foundP = true;
return root;
}
if (root === q) {
foundQ = true;
return root;
}
if (left && right) return root;
return left || right || null;
}
};