530.二叉搜索树最小绝对差
class Solution {
TreeNode pre
int result = Integer.MAX_VALUE
public int getMinimumDifference(TreeNode root) {
if(root == null) return 0
traversal(root)
return result
}
public void traversal(TreeNode node){
if(node == null) return
traversal(node.left)
if(pre != null){
result = Math.min(result, node.val - pre.val)
}
pre = node
traversal(node.right)
}
}
236.二叉树最近公共祖先
class Solution {
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if(root == null || root == p || root == q) return root;
TreeNode left = lowestCommonAncestor(root.left, p, q);
TreeNode right = lowestCommonAncestor(root.right, p, q);
if(left == null && right == null){
return null;
}else if(left == null && right != null){
return right;
}else if(left != null && right == null){
return left;
}else{
return root;
}
}
}