题目:
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”
示例 1:
5
1
3 。
示例 2:
5
4
5 。
示例 3:
输入:root = [1,2], p = 1, q = 2
输出:1
代码实现:
class Solution {
private TreeNode ans;
public Solution() {
this.ans = null;
}
private boolean dfs(TreeNode root, TreeNode p, TreeNode q) {
if (root == null) return false;
boolean lson = dfs(root.left, p, q);
boolean rson = dfs(root.right, p, q);
if ((lson 服务器托管网&& rson) || ((root.val == p.val || root.val == q.val) && (lson || rson))) {
ans = root;
}
return lson || rson || (root.val == p.val || root.val == q.val);
}
public TreeNode lowestCo服务器托管网mmonAncestor(TreeNode root, TreeNode p, TreeNode q) {
this.dfs(root, p, q);
return this.ans;
}
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
目录 🌟一、单例模式 🌈1、饿汉模式 🌈2、懒汉模式(重点!) 🌟二、工厂模式 🌟三、阻塞式队列 🌈1、阻塞队列是什么? 🌈2、阻塞队列:生产者-消费者模型 🌈3、消息队列的作用 🌈4、演示JDK中提供的阻塞队列 🌈5、自己实…