当前位置: 首页 > news >正文

【LeetCode 热题 100】二叉树的最大深度 / 翻转二叉树 / 二叉树的直径 / 验证二叉搜索树

头像
⭐️个人主页:@小羊
⭐️所属专栏:LeetCode 热题 100
很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~

动图描述

目录

    • 二叉树的中序遍历
    • 二叉树的最大深度
    • 翻转二叉树
    • 对称二叉树
    • 二叉树的直径
    • 二叉树的层序遍历
    • 将有序数组转换为二叉搜索树
    • 验证二叉搜索树
    • 二叉搜索树中第 K 小的元素


二叉树的中序遍历

  • 二叉树的中序遍历

在这里插入图片描述

class Solution {vector<int> res;
public:vector<int> inorderTraversal(TreeNode* root) {dfs(root);return res;}void dfs(TreeNode* root){if (root == nullptr) return;dfs(root->left);res.push_back(root->val);dfs(root->right);}
};

二叉树的最大深度

  • 二叉树的最大深度

在这里插入图片描述

class Solution {
public:int maxDepth(TreeNode* root) {if (root == nullptr) return 0;int left = maxDepth(root->left);int right = maxDepth(root->right);return left > right ? left + 1 : right + 1;}
};

翻转二叉树

  • 翻转二叉树

在这里插入图片描述

class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (root == nullptr) return nullptr;TreeNode *left = invertTree(root->left);TreeNode *right = invertTree(root->right);root->left = right;root->right = left;return root;}
};

对称二叉树

  • 对称二叉树

在这里插入图片描述

class Solution {
public:bool isSymmetric(TreeNode* root) {return dfs(root->left, root->right);}bool dfs(TreeNode* left, TreeNode* right){if (left && right){if (left->val != right->val) return false;return dfs(left->left, right->right) && dfs(left->right, right->left);}else if (left != right) return false;else return true;}
};

二叉树的直径

  • 二叉树的直径

在这里插入图片描述

class Solution {int depth;
public:int diameterOfBinaryTree(TreeNode* root) {dfs(root);return depth - 1;}int dfs(TreeNode* root){if (root == nullptr) return 0;int left = dfs(root->left);int right = dfs(root->right);depth = max(depth, left + right + 1);return max(left, right) + 1;}
};

二叉树的层序遍历

  • 二叉树的层序遍历

在这里插入图片描述

class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> res;queue<TreeNode*> q;if (root == nullptr) return res;q.push(root);while (q.size()){int sz = q.size();vector<int> tmp;while (sz--){TreeNode *node = q.front();tmp.push_back(node->val);q.pop();if (node->left) q.push(node->left);if (node->right) q.push(node->right);}res.push_back(tmp);}return res;}
};

将有序数组转换为二叉搜索树

  • 将有序数组转换为二叉搜索树

在这里插入图片描述

class Solution {
public:TreeNode* sortedArrayToBST(vector<int>& nums) {return dfs(nums, 0, nums.size() - 1);}TreeNode* dfs(vector<int>& nums, int l, int r){if (l > r) return nullptr;int mid = l + (r - l) / 2;TreeNode* node = new TreeNode(nums[mid]);node->left = dfs(nums, l, mid - 1);node->right = dfs(nums, mid + 1, r);return node;}
};

验证二叉搜索树

  • 验证二叉搜索树

在这里插入图片描述

递归遍历。

class Solution {
public:bool isValidBST(TreeNode* root) {return dfs(root, LONG_MIN, LONG_MAX);}bool dfs(TreeNode* root, long min_val, long max_val){if (root == nullptr) return true;if (root->val <= min_val || root->val >= max_val) return false;return dfs(root->left, min_val, root->val) && dfs(root->right, root->val, max_val);}
};

前序遍历。

class Solution {long prev = LONG_MIN;
public:bool isValidBST(TreeNode* root) {if (root == nullptr) return true;if (isValidBST(root->left) == false) return false;if (root->val <= prev) return false;prev = root->val; return isValidBST(root->right);}
};

二叉搜索树中第 K 小的元素

  • 二叉搜索树中第 K 小的元素

在这里插入图片描述

class Solution {int res, cnt;
public:int kthSmallest(TreeNode* root, int k) {cnt = k;dfs(root);return res;}void dfs(TreeNode* root){if (root == nullptr) return;dfs(root->left);if (--cnt == 0) {res = root->val;return;}dfs(root->right);}
};





本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~

头像

相关文章:

  • 机器学习——聚类算法练习题
  • 我们该如何使用DeepSeek帮我们减负?
  • flowable
  • 芦康沙妥珠单抗说明书摘要
  • MUSE Pi Pro 编译kernel内核及创建自动化脚本进行环境配置
  • Azure 应用的托管身份与服务主体
  • STM32 启动文件分析
  • Linux架构篇、第五章git2.49.0部署与使用
  • Unity3d 打包安卓平台(Android apk)报错Gradle build failed解决方法
  • 2. 盒模型/布局模块 - 响应式产品展示页_案例:电商产品网格布局
  • JavaScript编译原理
  • 数据结构(七)——图
  • Kingston FURY全新推出高性能PCIe 5.0 NVMe固态硬盘
  • AI+可视化:数据呈现的未来形态
  • 微信小程序 自定义图片分享-绘制数据图片以及信息文字
  • 位运算【入门-->精通】
  • Github 2025-05-13 Python开源项目日报 Top10
  • 我喜欢的vscode几个插件和主题
  • Datawhale 5月llm-universe 第1次笔记
  • 武汉大学无人机视角下的多目标指代理解新基准!RefDrone:无人机场景指代表达理解数据集
  • 《蛮好的人生》:为啥人人都爱这个不完美的“大女主”
  • 融创中国:境外债务重组计划聆讯定于9月15日召开
  • 为惩戒“工贼”,美国编剧工会“痛下杀手”
  • 睡觉总做梦是睡眠质量差?梦到这些事,才要小心
  • 再获殊荣!IP SH跻身上海文化品牌全球传播力TOP 6
  • 欧阳娜娜携家人回江西探亲,受聘为江西吉安文化旅游大使