問題: 給定個兩個節點,求它們在一棵二叉搜索樹中的最小公共祖先。
思路: 從根節點開始,找到第一個值在兩節點之間的節點,即爲最小公共祖先。
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;
}
}