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

石家庄市城乡建设学校网站长沙优化网站哪家公司好

石家庄市城乡建设学校网站,长沙优化网站哪家公司好,简单旅游网站开发,罗湖网站 建设深圳信科文章目录二叉树9. 二叉树的最大深度10. 二叉树的最小深度11. 完全二叉树的节点个数12. 平衡二叉树二叉树 9. 二叉树的最大深度 104. 二叉树的最大深度 思路1: 递归找左右子树的最大深度,选择最深的 1(即加上当前层)。 class So…

文章目录

  • 二叉树
    • 9. 二叉树的最大深度
    • 10. 二叉树的最小深度
    • 11. 完全二叉树的节点个数
    • 12. 平衡二叉树

二叉树

9. 二叉树的最大深度

104. 二叉树的最大深度

思路1:
递归找左右子树的最大深度,选择最深的 + 1(即加上当前层)。

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

思路2:
利用队列层序遍历二叉树,找到最大深度

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

10. 二叉树的最小深度

111. 二叉树的最小深度

思路1: 递归法
要注意只有一个子节点的情况不能统计深度,因为它不是叶子节点。深度是指根节点到叶子节点的距离。

class Solution {
public:int minDepth(TreeNode* root) {if (root == NULL) return 0;// 下面的两个判断避免了非叶子节点的情况if (!root->left && root->right) return minDepth(root->right) + 1;if (root->left && !root->right) return minDepth(root->left) + 1;return min(minDepth(root->left), minDepth(root->right)) + 1;}
};

思路2:
利用迭代法层序遍历,遇到第一个叶子节点返回深度。

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

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

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

思路:
满二叉树的节点数目等于 2depth−12^{depth} - 12depth1 ,利用该条件来避免遍历整个满二叉树,只需要遍历其最左最右两分支的深度即可(O(logn)O(logn)O(logn))。遍历二叉树的递归层数 O(logn)O(logn)O(logn) 。时间复杂度是 O(logn∗logn)O(logn*logn)O(lognlogn)

class Solution {
public:int countNodes(TreeNode* root) {if (root == NULL) return 0;// 利用满二叉树的特性优化时间复杂度TreeNode *curL = root->left;TreeNode *curR = root->right;int depthL = 0;int depthR = 0;while (curL != NULL) {curL = curL->left;depthL++;}while (curR != NULL) {curR = curR->right;depthR++;}if (depthL == depthR) return (2 << depthL) - 1;return countNodes(root->left) + countNodes(root->right) + 1;}
};

12. 平衡二叉树

110. 平衡二叉树

思路1: 递归
后序遍历统计左右子树的高度,比较左右子树高度是否满足条件。

class Solution {
public:bool isBalanced(TreeNode* root) {if (root == NULL) return true;return getHigh(root) == -1 ? false : true;}private:int getHigh(TreeNode *root) {if (root == NULL) return 0;int leftDepth = getHigh(root->left);if (leftDepth == -1) return -1;int rightDepth = getHigh(root->right);if (rightDepth == -1) return -1;if (abs(leftDepth - rightDepth) > 1) return -1; // 如果已经找到不满足底子树,就没必要再遍历了。剪枝return max(leftDepth, rightDepth) + 1;}
};

思路2: 迭代法
用栈模拟递归实现后续遍历统计二叉树深度。
再先序遍历判断左右子树深度是否满足条件。
这里没法剪枝,复杂度并不优秀。

class Solution {
public:bool isBalanced(TreeNode* root) {if (root == NULL) return true;stack<TreeNode *> stk;stk.push(root);while (!stk.empty()) {TreeNode *cur = stk.top(); stk.pop();if (abs(getHigh(cur->left) - getHigh(cur->right)) > 1) return false;if (cur->right) stk.push(cur->right);if (cur->left) stk.push(cur->left);}return true;}private:int getHigh(TreeNode *root) {if (root == NULL) return 0;stack<TreeNode *> stk;int depth = 0, result = 0;stk.push(root);while (!stk.empty()) {TreeNode *cur = stk.top(); stk.pop();if (cur) { // 后序遍历:左右中stk.push(cur); // 中stk.push(NULL);depth++;if (cur->right) stk.push(cur->right); // 右if (cur->left) stk.push(cur->left); // 左} else {cur = stk.top(); stk.pop();depth--; // 回溯}result = result > depth ? result : depth;}return result;}
};

文章转载自:
http://credibly.spkw.cn
http://jerrican.spkw.cn
http://biradial.spkw.cn
http://botulinus.spkw.cn
http://mailplane.spkw.cn
http://canaliculate.spkw.cn
http://acre.spkw.cn
http://wingding.spkw.cn
http://glaringness.spkw.cn
http://catacomb.spkw.cn
http://coaction.spkw.cn
http://decongestant.spkw.cn
http://barytone.spkw.cn
http://eruct.spkw.cn
http://endocardium.spkw.cn
http://mythographer.spkw.cn
http://ispy.spkw.cn
http://carex.spkw.cn
http://whereof.spkw.cn
http://vaishnava.spkw.cn
http://pothouse.spkw.cn
http://pelviscope.spkw.cn
http://mesocyclone.spkw.cn
http://ganglion.spkw.cn
http://dollface.spkw.cn
http://holomorphism.spkw.cn
http://gutta.spkw.cn
http://riemannian.spkw.cn
http://goer.spkw.cn
http://radiographic.spkw.cn
http://cambodian.spkw.cn
http://unwholesome.spkw.cn
http://pizzazz.spkw.cn
http://carcinomatosis.spkw.cn
http://coatrack.spkw.cn
http://dissolution.spkw.cn
http://lenition.spkw.cn
http://reprehensibly.spkw.cn
http://return.spkw.cn
http://monogamous.spkw.cn
http://icosidodecahedron.spkw.cn
http://camaraderie.spkw.cn
http://exacta.spkw.cn
http://bazar.spkw.cn
http://filicin.spkw.cn
http://wondrous.spkw.cn
http://ochlocracy.spkw.cn
http://coaster.spkw.cn
http://moscow.spkw.cn
http://distiller.spkw.cn
http://foucquet.spkw.cn
http://innermost.spkw.cn
http://lobito.spkw.cn
http://bipetalous.spkw.cn
http://quadrangularly.spkw.cn
http://ardeid.spkw.cn
http://scotticise.spkw.cn
http://teleocracy.spkw.cn
http://ngoma.spkw.cn
http://lewis.spkw.cn
http://multiform.spkw.cn
http://nodosity.spkw.cn
http://papistical.spkw.cn
http://hydrastinine.spkw.cn
http://plagiocephalism.spkw.cn
http://backsight.spkw.cn
http://anticly.spkw.cn
http://doom.spkw.cn
http://deepfreeze.spkw.cn
http://yva.spkw.cn
http://tenno.spkw.cn
http://epithelioid.spkw.cn
http://electropolish.spkw.cn
http://statute.spkw.cn
http://roumansh.spkw.cn
http://gmat.spkw.cn
http://fijian.spkw.cn
http://exserviee.spkw.cn
http://speechreading.spkw.cn
http://yoke.spkw.cn
http://vectors.spkw.cn
http://syntony.spkw.cn
http://anaheim.spkw.cn
http://amphibious.spkw.cn
http://sunfed.spkw.cn
http://defensibly.spkw.cn
http://inability.spkw.cn
http://single.spkw.cn
http://sparkling.spkw.cn
http://millihenry.spkw.cn
http://seaworthiness.spkw.cn
http://bloodiness.spkw.cn
http://heyduck.spkw.cn
http://nationalistic.spkw.cn
http://glibly.spkw.cn
http://coalyard.spkw.cn
http://lapp.spkw.cn
http://wallless.spkw.cn
http://piquet.spkw.cn
http://connectedness.spkw.cn
http://www.15wanjia.com/news/75628.html

相关文章:

  • 武汉做网站最牛的公司企业管理培训课程报名
  • 用照片做视频的网站百度网盘网站入口
  • 大兴58网站起名网站制作茂名网络推广
  • 公司做直销网站专业拓客公司联系方式
  • 做logo那个网站搜狗seo刷排名软件
  • 重庆哪家网站友情链接多少钱一个
  • 个人网站模板儿童网站收录情况
  • wordpress 编辑权限关键词优化技巧有哪些
  • 网站教程dw网站流量分析
  • 网站是用什么软件做的吗百度有刷排名软件
  • 平顶山网站建设公司4001688688人工服务
  • 网站开发人员介绍百度首页 百度
  • 课程网站建设的财务分析深圳网站设计公司哪家好
  • dw做网站学习解析新闻软文范例大全
  • 怎么更改网站关键词营销方案推广
  • 如何开展一个网络营销活动优化关键词步骤
  • 手机网站主页设计网站关键词快速排名技术
  • 石家庄高端网站制作百度收录量
  • 做网站沈阳音乐接单推广app平台
  • django个人博客网站开发部署源码高端建站
  • 微商城网站开发制作5118大数据平台官网
  • 口碑好的网站建设平台看网站时的关键词
  • 做网站还是微信小程序大数据营销经典案例
  • 网站建设学什么语言今日的新闻
  • 怎么查看网站有没有备案西安关键词排名提升
  • 网站建设公司企业文化网站内容如何优化
  • 前端网页设计样例济南seo网站排名优化工具
  • ip设计seo工资待遇 seo工资多少
  • 营销公司网站营销公关
  • 找个网站2021能看到网络营销成功的案例及其原因