题目
题解
见注释
代码
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
//root为空或者p和q有一个结点再root结点返回root
if(root==null||root==p||root==q){
return root;
}
//左子树递归
TreeNode left=lowestCommonAncestor(root.left,p,q);
//右子树递归
TreeNode right=lowestCommonAncestor(root.right,p,q);
//每次递归完看p和q在不在root结点
if(left==null){
return right;
}
if(right==null){
return left;
}
return root;
}
备注
本文正在参与「掘金 2021 春招闯关活动」, 点击查看。