题解 | #二叉搜索树的最近公共祖先#
二叉搜索树的最近公共祖先
https://www.nowcoder.com/practice/d9820119321945f588ed6a26f0a6991f
class Solution: def lowestCommonAncestor(self , root: TreeNode, p: int, q: int) -> int: def path(root, k): # 定义一个搜索路径记录函数, res = [root.val] # 返回一个列表 while k != root.val: if k > root.val: root = root.right else: root = root.left res.append(root.val) return res s1 = path(root, p) # 分别求出p和q的路径 s2 = path(root, q) f = None for a,b in zip(s1, s2): # 将两个路径相同位置记录下来 if a==b: # 最后一个相同节点即为最近公共祖先 f = a else: break return f