原题链接
typescript
function lowestCommonAncestor(root: TreeNode | null, p: TreeNode | null, q: TreeNode | null): TreeNode | null {
const getPath = (node: TreeNode, target: TreeNode) => {
let answer = [];
while(node && node !== target) {
answer.push(node);
if(node.val > target.val) {
node = node.left;
} else{
node = node.right;
}
}
answer.push(node);
return answer;
}
const pathP = getPath(root, p);
const pathQ = getPath(root, q);
let i = pathP.length;
let j = pathQ.length;
let answer = null;
for(let k = 0; k < i && k < j; k++) {
if(pathP[k] === pathQ[k]) {
answer = pathP[k];
} else {
break;
}
}
return answer;
};