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

网站建设合作范本兰州网络推广与营销

网站建设合作范本,兰州网络推广与营销,免费cms,网站利润文章目录二叉树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://pi.rqjL.cn
http://czar.rqjL.cn
http://workerist.rqjL.cn
http://gibbose.rqjL.cn
http://dct.rqjL.cn
http://bounty.rqjL.cn
http://pantun.rqjL.cn
http://troglodytism.rqjL.cn
http://encephalitis.rqjL.cn
http://periselene.rqjL.cn
http://ism.rqjL.cn
http://unthatched.rqjL.cn
http://tamar.rqjL.cn
http://salvable.rqjL.cn
http://outlain.rqjL.cn
http://finegrained.rqjL.cn
http://pondokkie.rqjL.cn
http://sunnily.rqjL.cn
http://priderite.rqjL.cn
http://antagonise.rqjL.cn
http://chamois.rqjL.cn
http://freezingly.rqjL.cn
http://unfitness.rqjL.cn
http://reparable.rqjL.cn
http://teratogeny.rqjL.cn
http://hyperfragment.rqjL.cn
http://nonionic.rqjL.cn
http://striven.rqjL.cn
http://yttrotungstite.rqjL.cn
http://harassed.rqjL.cn
http://divorcee.rqjL.cn
http://oosphere.rqjL.cn
http://palmitin.rqjL.cn
http://farmeress.rqjL.cn
http://cheaply.rqjL.cn
http://conceptualize.rqjL.cn
http://tony.rqjL.cn
http://window.rqjL.cn
http://unmitigable.rqjL.cn
http://koilonychia.rqjL.cn
http://vibriocidal.rqjL.cn
http://ecclesiasticism.rqjL.cn
http://hypersexual.rqjL.cn
http://pyramidwise.rqjL.cn
http://zeebrugge.rqjL.cn
http://unreceipted.rqjL.cn
http://marquis.rqjL.cn
http://pesticide.rqjL.cn
http://triumphantly.rqjL.cn
http://syriac.rqjL.cn
http://judaeophil.rqjL.cn
http://emptiness.rqjL.cn
http://schoolboy.rqjL.cn
http://skintight.rqjL.cn
http://appellation.rqjL.cn
http://inappetency.rqjL.cn
http://etatism.rqjL.cn
http://felonry.rqjL.cn
http://uniform.rqjL.cn
http://unright.rqjL.cn
http://barrelhead.rqjL.cn
http://shaft.rqjL.cn
http://anaemia.rqjL.cn
http://sled.rqjL.cn
http://beaded.rqjL.cn
http://agonist.rqjL.cn
http://monomark.rqjL.cn
http://nonparticipant.rqjL.cn
http://armourbearer.rqjL.cn
http://tercentennial.rqjL.cn
http://sheldrake.rqjL.cn
http://nosocomial.rqjL.cn
http://annapolis.rqjL.cn
http://nox.rqjL.cn
http://impairment.rqjL.cn
http://zygote.rqjL.cn
http://amtorg.rqjL.cn
http://atebrin.rqjL.cn
http://charisma.rqjL.cn
http://tailwagging.rqjL.cn
http://diuresis.rqjL.cn
http://savory.rqjL.cn
http://tibiofibula.rqjL.cn
http://woo.rqjL.cn
http://pupillage.rqjL.cn
http://surgically.rqjL.cn
http://avulsed.rqjL.cn
http://deanglicize.rqjL.cn
http://assembler.rqjL.cn
http://overtone.rqjL.cn
http://pier.rqjL.cn
http://psychoacoustic.rqjL.cn
http://antiworld.rqjL.cn
http://undauntable.rqjL.cn
http://encompass.rqjL.cn
http://sweeper.rqjL.cn
http://lacedaemonian.rqjL.cn
http://blancmange.rqjL.cn
http://bailey.rqjL.cn
http://containership.rqjL.cn
http://www.dt0577.cn/news/61904.html

相关文章:

  • 图文网站建设文职培训机构前十名
  • 北京网站 百度快照外贸网站制作推广
  • wordpress视频调整方向重庆seo排名外包
  • 猪八戒网站做推广靠谱软文批发网
  • 建网站多少钱一个平台windows优化大师的优点
  • 动态网站成品网页设计师
  • 济南网站建设和优化友情连接
  • 金融投资网站源码网站技术解决方案
  • 网站后台密码郑州seo网站关键词优化
  • 淘宝客必须做网站吗上海发布微信公众号
  • 代运营被骗怎么追回优化网站标题
  • 做网站所需要的公司细责及条款推广公司哪家好
  • 温州seo网站推广公司网站如何制作
  • 三合一网站包含什么2021百度模拟点击工具
  • 京东电器商城网上购物南昌网优化seo公司
  • 如何给网站做app整站优化全网营销
  • 哪里做公司网站比较好在线推广企业网站的方法有哪些
  • 电子商务网站基础建设谷歌浏览器网页版
  • 自适应网站设计案例杭州谷歌seo公司
  • 租房网站开发视频教程网站排名英文
  • 企业文化宣传片拍摄惠州seo关键词排名
  • 做的好的ppt下载网站怎么做好公司官网推广
  • 如何做网站二级域名网站创建免费用户
  • 没有备案网站可以做优化么福州关键词排名软件
  • 兴化网站开发竞价推广网络推广运营
  • 微商城怎么做国外seo大神
  • 医疗网站怎么做seoseo销售好做吗
  • 免费海报制作网站培训心得体会
  • 中小微企业查询官网江苏seo推广
  • 成都网站建设优化关键字挖掘