2021.11.19 - SX07-29.二叉搜索树的最近公共祖先

1. 题目

在这里插入图片描述

2. 思路

(1) 递归

  • 只有当p和q不在根结点的同一侧子树上时,根结点才是p和q的最近公共祖先。

3. 代码

public class Test {
    
    
    public static void main(String[] args) {
    
    
    }
}

class TreeNode {
    
    
    int val;
    TreeNode left;
    TreeNode right;

    TreeNode(int x) {
    
    
        val = x;
    }
}

class Solution {
    
    
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
    
    
        while (true) {
    
    
            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 {
    
    
                break;
            }
        }
        return root;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_44021223/article/details/121420122