问题: 给定个两个节点,求它们在一棵二叉搜索树中的最小公共祖先。
思路: 从根节点开始,找到第一个值在两节点之间的节点,即为最小公共祖先。
java代码:
TreeNode LCA(TreeNode root,TreeNode p,TreeNode q){
if(root==null||p==null||q==null)
return null;
if(root.val>p.val&&root.val>q.val){
return LCA(root.left,p,q);
}
else if(root.val<p.val&&root.val<q.val){
return LCA(root.right,p,q);
}
else{
return root;
}
}