/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
TreeNode ans = null;
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
dfs(root, p, q);
return ans;
}
private int dfs(TreeNode root, TreeNode p, TreeNode q) {
if (root == null) return 0;
int state = dfs(root.left, p, q);
if (root == q) state |= 1;
else if (root == p) state |= 2;
state |= dfs(root.right, p, q);
if (state == 3 && ans == null) ans = root;
return state;
}
}
06-24
2440
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-20
07-20
07-20
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交