题目链接: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
}
标签:return,Val,二叉,搜索,235,root,LeetCode,节点
From: https://www.cnblogs.com/lxing-go/p/17526929.html