Skip to content

Files

Latest commit

 

History

History
28 lines (23 loc) · 852 Bytes

235.md

File metadata and controls

28 lines (23 loc) · 852 Bytes

235. Lowest Common Ancestor of a Binary Search Tree

给定一棵二叉搜索树(BST),寻找BST中两个给定节点的最近公共祖先(LCA)。

根据维基百科对LCA的定义:“节点v与w的最近公共祖先是树T上同时拥有v与w作为后继的最低节点(我们允许将一个节点当做其本身的后继)”

class Solution2(object):
    def lowestCommonAncestor(self, root, p, q):
        """
        :type root: TreeNode
        :type p: TreeNode
        :type q: TreeNode
        :rtype: TreeNode
        """
        # 6 star, 巧妙的解法
        if p.val > q.val:
            p, q = q, p
        while root:
            if root.val < p.val:
                root = root.right
            elif root.val > q.val:
                root = root.left
            else:
                return root