博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法 - 树最小公共节点
阅读量:5340 次
发布时间:2019-06-15

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

https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/description/

 

一开始没仔细看题目是搜索树,写的是普通二叉树的解法:

 

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    TreeNode result = null;    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {        findNode(root,p,q);        return result;    }            public int findNode(TreeNode root, TreeNode p, TreeNode q)    {        if(root==null || result !=null) return 0;        int lv = findNode(root.left,p,q);        int rv = findNode(root.right,p,q);        if(result!=null) return 0;        if(root==p)        {            if(lv+rv==2) result = p;            return 1;        }        if(root==q)        {            if(lv+rv==1) result = q;            return 2;        }        if(lv + rv ==3) result = root;        return lv+rv;    }}

 

搜索树就简单很多了:

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {        if(root==null) return null;        if(p.val < q.val)        {            if(root.val > q.val) return lowestCommonAncestor(root.left,p,q);            else if(root.val < p.val) return lowestCommonAncestor(root.right,p,q);            else return root;        }        else return lowestCommonAncestor(root,q,p);    }}

 

转载于:https://www.cnblogs.com/qlky/p/7883792.html

你可能感兴趣的文章
display:none与visible:hidden的区别
查看>>
我的PHP学习之路
查看>>
【题解】luogu p2340 奶牛会展
查看>>
对PostgreSQL的 SPI_prepare 的理解。
查看>>
解决响应式布局下兼容性的问题
查看>>
京东静态网页练习记录
查看>>
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
Solr4.8.0源码分析(5)之查询流程分析总述
查看>>
[Windows Server]安装系统显示“缺少计算机所需的介质驱动程序”解决方案
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
Lucene 学习之二:数值类型的索引和范围查询分析
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
selenium-窗口切换
查看>>