美文网首页
77. LeetCode.235. 二叉搜索树的最近公共祖先

77. LeetCode.235. 二叉搜索树的最近公共祖先

作者: 月牙眼的楼下小黑 | 来源:发表于2019-02-24 22:18 被阅读8次
    • 标签:
    • 难度: 简单

    • 题目描述
    • 我的解法

    p,q 节点都小于 root 节点,则最近公共祖先一定在 root 左边; 若 p,q 节点都大于 root 节点,则最近公共祖一定在 root 右边。如果一小一大或一等一大或一等一小, 则最近的公众祖先是 root

    
    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def lowestCommonAncestor(self, root, p, q):
            """
            :type root: TreeNode
            :type p: TreeNode
            :type q: TreeNode
            :rtype: TreeNode
            """
            if not root:
                return root   
            if root.val > p.val and root.val > q.val:
                return self.lowestCommonAncestor(root.left, p, q)
            if root.val < p.val and root.val < q.val:
                return self.lowestCommonAncestor(root.right, p, q)
            return root
            
    
    • 其他解法

    暂略。

    相关文章

      网友评论

          本文标题:77. LeetCode.235. 二叉搜索树的最近公共祖先

          本文链接:https://www.haomeiwen.com/subject/ohliyqtx.html