今日任务
530.二叉搜索树的最小绝对差
- 题目链接: https://leetcode.cn/problems/minimum-absolute-difference-in-bst/description/
- 题目描述:

Code
class Solution {
public:
int getMinimumDifference(TreeNode* root) {
int ans = INT_MAX;
TreeNode *pre;
function<void(TreeNode *)> dfs = [&](TreeNode * node)->void{
if(node == nullptr){
return;
}
dfs(node->left);
if(pre){
ans = min(ans, abs(node->val - pre->val));
}
pre = node;
dfs(node->right);
return;
};
dfs(root);
return ans;
}
};
501.二叉搜索树中的众数
- 题目链接: https://leetcode.cn/problems/find-mode-in-binary-search-tree/description/
- 题目描述:

Code
class Solution {
public:
vector<int> findMode(TreeNode* root) {
TreeNode *pre;
int len = -1;
int preLen = 1;
vector<int> ans;
function<void(TreeNode *)> dfs = [&](auto node)->void{
if(node == nullptr){
return;
}
dfs(node->left);
if(pre && pre->val == node->val){
len++;
}else{
if(len == preLen){
ans.emplace_back(pre->val);
preLen = len;
}else if(len > preLen){
ans.clear();
ans.emplace_back(pre->val);
preLen = len;
}
len = 1;
pre = node;
}
dfs(node->right);
};
dfs(root);
if(len > preLen){
ans.clear();
ans.emplace_back(pre->val);
}else if(len == preLen){
ans.emplace_back(pre->val);
}
return ans;
}
};
236. 二叉树的最近公共祖先
- 题目链接: https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description/
- 题目描述:

Code
class Solution {
public:
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
if(root == nullptr || root == p || root == q){
return root;
}
TreeNode * left = lowestCommonAncestor(root->left, p, q);
TreeNode * right = lowestCommonAncestor(root->right, p, q);
if(left && right){
return root;
}
if(left){
return left;
}
return right;
}
};