`

Lowest Common Ancestor of a Binary Search Tree——Tree

阅读更多

Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.

According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w as descendants (where we allow a node to be a descendant of itself).”

        _______6______
       /              \
    ___2__          ___8__
   /      \        /      \
   0      _4       7       9
         /  \
         3   5
# 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
        """
        minNum = p.val if p.val <= q.val else q.val
        maxNum = p.val if p.val > q.val else q.val
        if maxNum < root.val:
            return self.lowestCommonAncestor(root.left, p, q)
        if minNum > root.val:
            return self.lowestCommonAncestor(root.right, p, q)
        return root.val

 

 

分享到:
评论

相关推荐

    Binary Tree – Lowest Common Ancestor 题型总结

    Lowest Common Ancestor of a Binary Search Tree  Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. According to the definition of LCA on Wikipedia:...

    1123.Lowest Common Ancestor of Deepest Leaves最深叶节点的最近公共祖先【LeetCode单题讲解系列】

    1123.Lowest_Common_Ancestor_of_Deepest_Leaves最深叶节点的最近公共祖先【LeetCo

    Range Minimum Query and Lowest Common Ancestor[翻译]1

    Range Minimum Query and Lowest Common Ancestor[翻译]1

    Lowest Common Ancestor of Deepest Leaves

    Given a rooted binary tree, return the lowest common ancestor of its deepest leaves. Recall that: The node of a binary tree is a leaf if and only if it has no children The depth of the root of ...

    yandex_tree_3.rar_tree

    lowest common ancestor

    Algorithms-Leetcode-Javascript:Javascript中的算法解析。 Leetcode-Geeksforgeeks-职业生涯

    要在控制台中运行特定问题,请转至文件test,将调用添加到测试函数( test() ),然后在控制台node &lt;problem&gt; (例如, node LeetcodeProblems/Lowest_Common_Ancestor_of_a_Binary_Tree.js )。 Leetcode问题 名称...

    mcd.zip_The Common

    This program calculates the lowest common multiple of two numbers using Euclid s algorithm. To do this we will read the two numbers and we do accounts required to calculate

    lrucacheleetcode-LeetCode_Java:力扣_Java

    Binary Lifting for LCA(lowest common ancestor) ---, 5.贪婪 6. Manacher/KMP算法 (未完成) 7. 添加 8. 指针 滑动窗口 9.前缀总和 10.递归/DFS 11.棘手的方法 (未完成) 12. 堆栈 Monotonic_Stack 13. 14. ...

    微软内部资料-SQL性能优化5

    On a qualified select, update, or delete, the correct leaf page will be the lowest page of the tree in which one or more rows with the specified key or keys reside. A qualified operation is one that ...

    Lowest Common Denominator Bible-开源

    非技术人员(包括传教士/儿童/老年人)的简单圣经免费软件小 1.2 兆下载与 OT+NT。 &lt; 1 秒启动和搜索甚至在过时的最低公分母 486 上(1 GB 高清、640*480 分辨率、16 mb 内存、无 CD、28.8 调制解调器、Win95)

    Lowest-function-value-search

    Lowest-function-value-search

    8-1student_C++_CodeName_

    8-1 Students I (10分)Write a program that asks you 10 records of students. Each record consists of a name (w/o space) and scores for three courses (in integer 1 to 5). Output a list as following and ...

    Computer System Design System-on-Chip

    It begins with a global introduction, from the high-level view to the lowest common denominator (the chip itself), then moves on to the three main building blocks of an SOC (processor, memory, and ...

    全面的算法代码库

    普通的二叉搜索树 Binary-Search-Tree 广度优先搜索 Breadth-First-Search 冒泡排序 Bubble-Sort 桶排序 Bucket-Sort 组合数的递推求解 Combination(Recursion) 枚举组合 Combination 基本的复数类 Complex-...

    Data Structures & Algorithms in Swift 4th Edition

    * Trees: Learn how to work with various types of trees, including general purpose trees, binary trees, AVL trees, binary search trees, and tries. * Sorting: Go beyond bubble and insertion sort with ...

    tictax:Web服务的流序列分类✓:pushpin:

    tictax:Web服务的流序列分类 使用One Codex和EBI API从命令行或Python快速便捷地实现最低的祖先(LCA)分配。 以正确的方向吹风,每秒可发出约100个请求。... kmer-lca Lowest common ancestor sequ

    leetcode和oj-leetcode-java:力扣在线裁判解决方案

    leetcode 和 oj LeetCode 解决方案 Java 版 Leetcode 问题分类 细绳 8 字符串到整数 (atoi) 14 ...oj_102_binary_tree_level_order ...oj_236_lowest_common_ancestor_of_bt / notes.md SRC /溶液/ oj

    mpeg7 CE1常用形状识别数据集

    MPEG-7 Core Experiment CE-Shape-1 is a popular database for shape matching evaluation consisting of 70 shape categories, where each category is represented by 20 different images with high intra-class...

    面向XML关键字查询的高效RKN求解策略

    针对已有方法不能正确求解基于ELCA(exclusive lowest common ancestor)语义的相关关键字节点(RKN,relevant keyword node)的问题,提出RKN的形式化定义及相应的RKN-Base算法。该算法通过顺序扫描每个关键字节点一次...

    acm模板(全)

    5.1.2 Lowest Common Ancestor (LCA) 53 5.1.3 Reduction from LCA to RMQ 56 5.1.4 From RMQ to LCA 57 5.1.5 An(N), O(1)&gt; algorithm for the restricted RMQ 60 5.1.6 An AC programme 61 5.2 最长公共子序列LCS ...

Global site tag (gtag.js) - Google Analytics