LeetCode 235. 二叉搜索树的最近公共祖先

发布时间 2023-07-04 20:41:37作者: 小星code

题目链接:LeetCode 235. 二叉搜索树的最近公共祖先

题意:

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

解题思路:

  • 对于二叉搜索树,找两个点的最近公共祖先,这两个点所处的位置只有两种情况:
  • 情况一:两点在根节点的左右两侧
  • 情况二:两点在根节点的一侧(左侧或者右侧)

递归代码:

func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {
	
    if root == nil {  //如果是空,就返回
        return nil
    }
    // 对于在当前节点一侧的情况,都在左边往左递归,都在右边往右递归
    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 root
}