zoukankan      html  css  js  c++  java
  • 235. 二叉搜索树的最近公共祖先-leetcode

    235. 二叉搜索树的最近公共祖先-leetcode

    235. 二叉搜索树的最近公共祖先-leetcode

    Table of Contents

    2 代码

    /**
     * Definition for a binary tree node.
     * class TreeNode {
     *     public $val = null;
     *     public $left = null;
     *     public $right = null;
     *     function __construct($value) { $this->val = $value; }
     * }
     */
    
    class Solution {
        /**
         * @param TreeNode $root
         * @param TreeNode $p
         * @param TreeNode $q
         * @return TreeNode
         */
        function lowestCommonAncestor($root, $p, $q) {
        if (empty($root)) {
            return $root;
        }
    
        if (($root->val <= $p->val && $root->val >= $q->val) 
            || ($root->val >= $p->val && $root->val <= $q->val)) {
            return $root;
        }
    
        if ($root->val >= $p->val && $root->val >= $q->val) {
            return $this->lowestCommonAncestor($root->left, $p, $q);
        }
    
        if ($root->val <= $p->val && $root->val <= $q->val) {
            return $this->lowestCommonAncestor($root->right, $p, $q);
        }
        }
    }
    

    3 思路

    • 最近公共祖先,首先想到了公共祖先怎么得到
    • 第一时间想到的是,求两个节点到root的路径,然后取到公共部分的最后一个节点返回
    • 但是我并没有第一时间这样做,而是又观察了一下最近的公共祖先的特点,即代码中所示

    ===

    作者: 吴丹阳 https://www.cnblogs.com/wudanyang

    更新时间: 2020-08-30 Sun 23:32

    Emacs 27.1 (Org mode 9.3.7)

    ===

    天行健,君子以自强不息。

    地势坤,君子以厚德载物。

    ===

  • 相关阅读:
    mysql数据库开放远程连接的方法
    MySQL数据库字符集由utf8修改为utf8mb4一例
    解决silk-v3-decoder-master转换wav时,百度语音解析问题
    PHP高效率写法(详解原因)
    如何计算服务器能够承受多大的pv?
    微信开发中使用curl忽略https证书
    PHP libevent函数基本介绍
    PHP stream相关协议及上下文选项和参数归纳
    Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17
    编码转换(UTF8->GBK)
  • 原文地址:https://www.cnblogs.com/wudanyang/p/13579891.html
Copyright © 2011-2022 走看看