最低共同祖先,肯定值处于两者之间,而且是第一个这样的节点
所以就像二分搜索一样,当前节点值都大于p和q,则向左走,反之向右走
当碰到介于两者之间时,说明当前节点就是我们要找的
class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(root.val > p.val && root.val > q.val) return lowestCommonAncestor(root.left, p, q); else if(root.val < p.val && root.val < q.val) return lowestCommonAncestor(root.right, p, q); else return root; } }