博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 235 Lowest Common Ancestor of a Binary Search Tree
阅读量:4342 次
发布时间:2019-06-07

本文共 1415 字,大约阅读时间需要 4 分钟。

方法一: 坐等左边右边来送结果~~~,适合所有二叉树

 

1 class Solution { 2     public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { 3         if (root == null) { 4             return null; 5         } 6         if (root == p || root == q) { 7             return root; 8         } 9 10         TreeNode left = lowestCommonAncestor(root.left, p, q);11         TreeNode right = lowestCommonAncestor(root.right, p, q);12         if (left != null && right != null) {13             return root;14         }15         if (left != null) {16             return left;17         }18         if (right != null) {19             return right;20         }21         return null;22     }23 }

 

 

方法二 Branch pruning : 

转来自老铁的博客https://home.cnblogs.com/u/davidnyc

 

1  // the goal is to find the root that would sit in the middle 2      public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { 3          //base case 4          if (root == null) return null ; 5          int min = Math.min(p.val, q.val) ; 6          int max = Math.max(p.val, q.val) ; 7          //pre order:看看当前点是不是满足的值 8          if (root.val>=min && root.val <= max) return root ; 9          //the left: branch pruning > max, then go left: 左边返回就一层层往上返回10          if (root.val > max){11             return lowestCommonAncestor(root.left, p, q) ;12          }13          //the right: branch pruning: 

 

转载于:https://www.cnblogs.com/mayinmiao/p/8492828.html

你可能感兴趣的文章
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
ajax跨域,携带cookie
查看>>
阶段3 2.Spring_01.Spring框架简介_03.spring概述
查看>>
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>
阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
查看>>
阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
查看>>
阶段3 2.Spring_02.程序间耦合_5 编写工厂类和配置文件
查看>>
阶段3 2.Spring_01.Spring框架简介_05.spring的优势
查看>>
阶段3 2.Spring_02.程序间耦合_7 分析工厂模式中的问题并改造
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
查看>>
阶段3 2.Spring_02.程序间耦合_8 工厂模式解耦的升级版
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
查看>>
阶段3 2.Spring_04.Spring的常用注解_2 常用IOC注解按照作用分类
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_5、SpringBoot2.x的依赖默认Maven版本...
查看>>