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

免费供求信息发布沈阳seo网站关键词优化

免费供求信息发布,沈阳seo网站关键词优化,在哪里可以学装修设计,上海免费网站建设公司Day16 104.二叉树的最大深度559.n叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数 104.二叉树的最大深度 题目链接: 104.二叉树的最大深度 深度和高度相反。 高度,自然是从下向上数:叶子节点是第一层,往上数&#x…

Day16

    • 104.二叉树的最大深度
    • 559.n叉树的最大深度
    • 111.二叉树的最小深度
    • 222.完全二叉树的节点个数

104.二叉树的最大深度

题目链接: 104.二叉树的最大深度
深度和高度相反。
高度,自然是从下向上数:叶子节点是第一层,往上数,越来越多。用后序遍历来求高度。(自己排一遍后序遍历,注意中间节点的位置,最后再处理根节点)
深度,自然是从上向下数:根节点是第一层,往下数,越来越多。用前序遍历来求深度。

递归:用后序遍历求高度(本题高度相当于深度)

class Solution {
public:int recursion(TreeNode* cur) {if (!cur) return 0;int left = recursion(cur->left);//左 int right = recursion(cur->right);//右//处理成高度,子节点数值 + 1return 1 + max(left, right);//中}int maxDepth(TreeNode* root) {return recursion(root);}
};

递归:用前序遍历求深度

class Solution {
public://每个递归函数中,都有一个resultint result = 0;//递归中用到result,也可以写到函数参数中void recursion(TreeNode* cur, int depth) {result = result > depth ? result : depth;//中。取最大值if (!cur->left && !cur->right) return;if (cur->left) recursion(cur->left, depth + 1);//左if (cur->right) recursion(cur->right, depth + 1);//右}int maxDepth(TreeNode* root) {if (!root) return 0;recursion(root, 1);return result;}
};

迭代法 层序遍历

class Solution {
public:int maxDepth(TreeNode* root) {queue<TreeNode*> que;if (root) que.push(root);int res = 0;while (!que.empty()) {int size = que.size();while (size--) {TreeNode* cur = que.front();que.pop();if (cur->left) que.push(cur->left);if (cur->right) que.push(cur->right);}++res;}return res;}
};

559.n叉树的最大深度

题目链接:559.n叉树的最大深度
递归 后序遍历。

class Solution {
public:int maxDepth(Node* root) {if (!root) return 0;int depth = 0;for (auto& i: root->children) {depth = max(depth, maxDepth(i));//子节点中最高}return depth + 1;}
};

层序迭代

class Solution {
public:int maxDepth(Node* root) {queue<Node*> que;if(!root) return 0;else que.push(root);int depth = 0;while (!que.empty()) {int size = que.size();while (size--) {Node* cur = que.front();que.pop();for (auto& i : cur->children) {que.push(i);}}++depth;}return depth;}
};

111.二叉树的最小深度

题目链接: 111.二叉树的最小深度
递归 后序遍历

class Solution {
public:int minDepth(TreeNode* root) {if (!root) return 0;int left = minDepth(root->left);//左int right = minDepth(root->right);//右//中if (!root->left && root->right)return 1 + right;if (root->left && !root->right)return 1 + left;return 1 + min(left, right);}
};

递归前序遍历

class Solution {
public:int res = INT_MAX;void recursion(TreeNode* cur, int depth) {if (!cur) return;//中if (!cur->left && !cur->right) {res = min(res, depth);}if (cur->left) recursion(cur->left, depth + 1);//左if (cur->right) recursion(cur->right, depth + 1);//右return;}int minDepth(TreeNode* root) {if (!root) return 0;recursion(root, 1);return res;}
};

迭代 层序遍历

class Solution {
public:int minDepth(TreeNode* root) {queue<TreeNode*> que;if (!root) return 0;if (root) que.push(root);int res = 1;//至少有一层while (!que.empty()) {int size = que.size();while (size--) {TreeNode* cur = que.front();que.pop();if (cur->left) que.push(cur->left);if (cur->right) que.push(cur->right);if (!cur->left && !cur->right) return res;}++res;}return res;}
};

222.完全二叉树的节点个数

题目链接:222.完全二叉树的节点个数
通过完全二叉树的性质,判断子树是否为满二叉树,通过 2 k − 1 2^k-1 2k1来加速计算节点个数。
递归 后序遍历

class Solution {
public:int countNodes(TreeNode* root) {if (!root) return 0;//判断是否为满二叉树TreeNode* l = root->left, * r = root->right;int leftCnt = 0, rightCnt = 0;while (l) {l = l->left;++leftCnt;}while (r) {r = r->right;++rightCnt;}if (leftCnt == rightCnt) return (2 << leftCnt) - 1;//注意<<的优先级小于-的优先级int leftSum = countNodes(root->left);//左int rightSum = countNodes(root->right);//右return leftSum + rightSum + 1/*cur节点*/;//中}
};

迭代层序遍历

class Solution {
public:int countNodes(TreeNode* root) {queue<TreeNode*> que;if (!root) return 0;else que.push(root);int cnt = 0;while (!que.empty()) {int size = que.size();while (size--) {TreeNode* cur = que.front();que.pop();++cnt;if (cur->left) que.push(cur->left);if (cur->right) que.push(cur->right);}}return cnt;}
};
http://www.ysxn.cn/news/2312.html

相关文章:

  • 系统开发生命周期法的优点表现泉州关键词优化软件
  • 网站建设自建服务器杭州百度推广代理商
  • 做微网站那pc端显示啥嘉兴seo排名外包
  • 从色彩度讨论如何建设一个网站.学生个人网页制作代码
  • 如何开通微信公众号做网站seo推广公司
  • 做专属淘客网站网络代理app
  • 怎么看自己做没做网站地图营销培训心得体会
  • 电子商务网站开发人员外贸推广引流
  • 冬奥会建设官方网站谷歌关键词挖掘工具
  • 济南 论坛网站建设游戏推广渠道有哪些
  • 用dreamriver做html网站江门seo外包公司
  • 大连 模板网站正规app推广
  • wordpress icp备案上海seo
  • 顺德龙江网站建设做百度推广一个月多少钱
  • 网站模版怎么做的上海优化外包
  • 做本地网站女孩短期技能培训班
  • 养老网站建设建立企业网站步骤
  • 上海网页设计高端定制免费seo工具大全
  • 网站制作套餐整站排名优化品牌
  • 又拍云wordpress全站cdn短视频seo搜索优化
  • 下沙做网站免费域名空间申请网址
  • 网站收录了但是搜索不到东营优化公司
  • 网站建设怎么支付款项西安seo网站排名
  • 网站域名注册规则网络营销与管理
  • 龙岩网上办事大厅官网seo入门教学
  • 简洁游戏企业网站哪个平台可以随便发广告
  • 虚拟机wordpress教程视频教程网站关键词排名手机优化软件
  • fifa18做sbc的网站爱站权重
  • 广东在线网站建设网站怎么接广告
  • 九江网站开发公司深圳seo优化公司哪家好