leetcode 235. 二叉搜索树的最近公共祖先
class Solution:
def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
# 看了评论区,二叉树和二叉搜索树是有一点不同,
# 二叉搜索树满足,左节点的值小于右节点的值, 左子树小于右子树.
# 这种递归的写法是很简洁,但是不太好理解。
# 比如在递归的过程中,传入的 root 这个节点,是一直变动的。
# 所以最终返回的这个 root 仅指的是一个变量名,而不是最初传入的值。
if p.val < root.val and q.val < root.val:
return self.lowestCommonAncestor(root.left, p, q)
if p.val > root.val and q.val > root.val:
return self.lowestCommonAncestor(root.right, p, q)
return root
本文标题:leetcode 235. 二叉搜索树的最近公共祖先
本文链接:https://www.haomeiwen.com/subject/soekzctx.html
网友评论