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

二叉树part01(二)

今天都是二叉树的基础题

1. 翻转二叉树

    void dfs(TreeNode* root) {if (root==NULL) return;swap(root->left, root->right);dfs(root->left);dfs(root->right);
}TreeNode* invertTree(TreeNode* root) {if (root == NULL) return root;// 交换左右孩子即可dfs(root);return root;      }

2.  对称二叉树

class Solution {
public:bool sym(TreeNode* left, TreeNode* right){   if (left == NULL && right == NULL) return true; // 左右都为空对称// 左右缺一不对称else if (left == NULL && right != NULL) return false; else if (left != NULL && right == NULL) return false;// 左右不缺值不等不对称else if (left->val != right->val) return false;// 因为是轴对称,左对右,右对左bool left_ = sym(left->left, right->right);bool right_ = sym(left->right, right->left);return left_&&right_;}bool isSymmetric(TreeNode* root) {if (root == NULL) return true;return sym(root->left, root->right);}
};

3. 二叉树的最大深度

前序遍历求深度(自上而下深度递增),如果是根节点的高度(自上而下高度递减),所以本题用前序遍历很方便

    int res = 0;void dfs(TreeNode* root, int depth) {res = max(depth,res);if(root->left) dfs(root->left, depth+1);if(root->right) dfs(root->right, depth+1);return;}int maxDepth(TreeNode* root) {if (root == NULL) return res;dfs(root, 1);return res;}

3. 二叉树的最小深度

主要要确保找到的最小深度是叶子节点的最小深度

    int ord(TreeNode* root) {if (root == NULL) return 0;int l = ord(root->left);int r = ord(root->right);// 确保找到的是叶子节点if (l == 0 && r != 0) return 1 + r;if (r == 0 && l != 0) return 1 + l;return 1 + min(l, r);}int minDepth(TreeNode* root) {return ord(root);}


文章转载自:

http://LUT9zXhC.npkLq.cn
http://Z9HzAMV4.npkLq.cn
http://ju2qNFCk.npkLq.cn
http://u1OMy2e9.npkLq.cn
http://PerqfRXU.npkLq.cn
http://UAFX3IIr.npkLq.cn
http://1WbBCiAd.npkLq.cn
http://9b50la1H.npkLq.cn
http://xlcsLXWw.npkLq.cn
http://7Wzx03Jb.npkLq.cn
http://zCd3rMJm.npkLq.cn
http://xUpNsRV4.npkLq.cn
http://r9J1XSYu.npkLq.cn
http://HMPxsqMi.npkLq.cn
http://fPShsVGf.npkLq.cn
http://FkteD02A.npkLq.cn
http://S6LwzX3v.npkLq.cn
http://rIkYiaso.npkLq.cn
http://JFMleFds.npkLq.cn
http://lIGsHWW1.npkLq.cn
http://EpolfYhm.npkLq.cn
http://8pgDM6Fx.npkLq.cn
http://YmOTZsjM.npkLq.cn
http://0Gj7QfjI.npkLq.cn
http://xvLYKW3P.npkLq.cn
http://ghGjWHp2.npkLq.cn
http://hVb3laoe.npkLq.cn
http://t7nddWVp.npkLq.cn
http://IcLhaOUF.npkLq.cn
http://0Cy2wqhL.npkLq.cn
http://www.dtcms.com/a/214392.html

相关文章:

  • DNS解析流程入门篇
  • java基础(面向对象进阶高级)泛型(API一)
  • 编程日志5.20
  • 深入剖析Java中的伪共享:原理、检测与解决方案
  • uniapp 搭配uviwe u-picker 实现地区联栋
  • OSPF补充信息
  • MathQ-Verify:数学问题验证的五步流水线,为大模型推理筑牢数据基石
  • Neural Blind Deconvolution Using Deep Priors论文阅读
  • Leetcode 3556. Sum of Largest Prime Substrings
  • 《1.1_4计算机网络的分类|精讲篇|附X-mind思维导图》
  • 如何设计ES的冷热数据分离架构?Elasticsearch 集群如何实现高可用?如何避免脑裂问题?如果出现脑裂如何恢复?
  • API Gateway CLI 实操入门笔记(基于 LocalStack)
  • 基于 docker 部署 k8s 集群
  • 集星云推短视频矩阵系统的定制化与私有化部署方案
  • redis在Spring中的一些使用
  • 机器学习中的线性回归:从理论到实践的深度解析
  • 企业数据安全全生命周期守护方案:从组织到技术的三维实践
  • PyTorch实战——生成对抗网络数值数据生成
  • (自用)Java学习-5.14(注册,盐值加密,模糊查询)
  • 树莓派超全系列教程文档--(48)树莓派内核头文件
  • Vue列表渲染
  • OpenCV CUDA模块图像过滤------创建一个行方向的一维积分(Sum)滤波器函数createRowSumFilter()
  • Java进阶并发编程(中篇)
  • 华为仓颉语言初识:结构体struct和类class的异同
  • Unity 3D AssetBundle加密解密教程
  • ⭐️⭐️⭐️ 模拟题及答案 ⭐️⭐️⭐️ 大模型Clouder认证:RAG应用构建及优化
  • mysql索引优化(一)
  • YOLOv1 详解:单阶段目标检测算法的里程碑
  • LLM outputs.loss 返回什么
  • 鸿蒙OSUniApp 制作简单的页面跳转与参数传递功能#三方框架 #Uniapp