530.二叉搜索树的最小绝对差
var getMinimumDifference = function(root) {
let res = Infinity
let preNode = null
const inorder = (node) => {
if(!node) return
inorder(node.left)
if(preNode) res = Math.min(res, node.val - preNode.val)
preNode = node
inorder(node.right)
}
inorder(root)
return res
}
501.二叉搜索树中的众数
var findMode = function(root) {
let count = 0,maxCount = 1;
let pre = root,res = [];
const travelTree = function(cur) {
if(cur === null) {
return ;
}
travelTree(cur.left);
if(pre.val === cur.val) {
count++;
}else {
count = 1;
}
pre = cur;
if(count === maxCount) {
res.push(cur.val);
}
if(count > maxCount) {
res = [];
maxCount = count;
res.push(cur.val);
}
travelTree(cur.right);
}
travelTree(root);
return res;
};
236. 二叉树的最近公共祖先
var lowestCommonAncestor = function(root, p, q) {
const travelTree = function(root,p,q) {
if(root === null || root === p || root === q) {
return root;
}
let left = travelTree(root.left,p,q);
let right = travelTree(root.right,p,q);
if(left !== null && right !== null) {
return root;
}
if(left === null) {
return right;
}
return left;
}
return travelTree(root,p,q);
};