LeetCode(力扣)236. 二叉树的最近公共祖先Python

LeetCode236. 二叉树的最近公共祖先

    • 题目链接
    • 代码

题目链接

https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/
LeetCode(力扣)236. 二叉树的最近公共祖先Python_第1张图片

代码

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

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

        if left is not None and right is not None:
            return root
        if left is None and right is not None:
            return right
        if left is not None and right is None:
            return left
        else:
            return None

你可能感兴趣的:(leetcode,python,算法,职场和发展)