TreeNode res = null;//超时
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if (root == null) return null;
if (dfs(root,p) && dfs(root,q)){
if ( (dfs(root.left,p) || dfs(root.left,q)) &&(dfs(root.right,p) || dfs(root.right,q))){
res = root;
}else if (root.val == p.val || root.val ==q.val ){
res = root;
}
}
if (res == null){
lowestCommonAncestor(root.left,p,q);
lowestCommonAncestor(root.right,p,q);
}
return res;
}
boolean dfs(TreeNode root, TreeNode pq){
if (root == null) return false;
if (root.val == pq.val ) return true;
return dfs(root.left,pq) || dfs(root.right,pq);
}
leetcode 0408 首个共同祖先
最新推荐文章于 2024-07-14 02:25:25 发布