題目描述:
代碼實現:
- 遞歸法,對左右子樹分別遞歸,找到p,q後返回,若left,right同時找到pq,就返回根節點,如果只有left和right其中一個找到,就返回他們本身。
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @param {TreeNode} p
* @param {TreeNode} q
* @return {TreeNode}
*/
var lowestCommonAncestor = function(root, p, q) {
if (root === null || root === p || root === q) {
return root
}
var left = lowestCommonAncestor(root.left, p, q)
var right = lowestCommonAncestor(root.right, p, q)
if (left && right) {
return root
} else if (left) {
return left
} else if (right) {
return right
}
};