二叉搜索树
自己学会了思路,但是写的时候出错,因为递归时需要加return
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
System.out.println(root.val + " " + p.val + " " + q.val);
if((root.val > p.val && root.val < q.val) ||(root.val < p.val && root.val > q.val))
return root;
if(root.val == p.val || root.val == q.val)
return root;
if(p.val < root.val && q.val < root.val)
return lowestCommonAncestor(root.left,p,q);
if(p.val > root.val && q.val > root.val)
return lowestCommonAncestor(root.right,p,q);
return null;
}
}