从上到下遍历的时候,cur节点是数值在[p, q]区间中则说明该节点cur就是最近公共祖先了

    递归法:

    1. var lowestCommonAncestor = function(root, p, q) {
    2. // 使用递归的方法
    3. // 1. 使用给定的递归函数lowestCommonAncestor
    4. // 2. 确定递归终止条件
    5. if(root === null) {
    6. return root;
    7. }
    8. if(root.val>p.val&&root.val>q.val) {
    9. // 向左子树查询
    10. let left = lowestCommonAncestor(root.left,p,q);
    11. return left !== null&&left;
    12. }
    13. if(root.val<p.val&&root.val<q.val) {
    14. // 向右子树查询
    15. let right = lowestCommonAncestor(root.right,p,q);
    16. return right !== null&&right;
    17. }
    18. return root;
    19. };

    迭代法:

    var lowestCommonAncestor = function(root, p, q) {
        // 使用迭代的方法
        while(root) {
            if(root.val>p.val&&root.val>q.val) {
                root = root.left;
            }else if(root.val<p.val&&root.val<q.val) {
                root = root.right;
            }else {
                return root;
            }
    
        }
        return null;
    };