欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python--剑指offer--简单--68 - II. 二叉树的最近公共祖先

程序员文章站 2022-07-14 14:37:34
...

python--剑指offer--简单--68 - II. 二叉树的最近公共祖先
python--剑指offer--简单--68 - II. 二叉树的最近公共祖先
python--剑指offer--简单--68 - II. 二叉树的最近公共祖先
python--剑指offer--简单--68 - II. 二叉树的最近公共祖先
python--剑指offer--简单--68 - II. 二叉树的最近公共祖先
python--剑指offer--简单--68 - II. 二叉树的最近公共祖先

class Solution:
    def lowestCommonAncestor(self, root: TreeNode, p: TreeNode, q: TreeNode) -> TreeNode:
        if not root or root == p or root == q: return root
        left = self.lowestCommonAncestor(root.left, p, q)
        right = self.lowestCommonAncestor(root.right, p, q)
        if not left: return right
        if not right: return left
        return root

python--剑指offer--简单--68 - II. 二叉树的最近公共祖先

class Solution:
    def lowestCommonAncestor(self, root: TreeNode, p: TreeNode, q: TreeNode) -> TreeNode:
        if not root or root == p or root == q: return root
        left = self.lowestCommonAncestor(root.left, p, q)
        right = self.lowestCommonAncestor(root.right, p, q)
        if not left and not right: return # 1.
        if not left: return right # 3.
        if not right: return left # 4.
        return root # 2. if left and right: