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

建设银行租房网站首页网站开发外包公司坑

建设银行租房网站首页,网站开发外包公司坑,会泽住房和城乡建设局网站,深度网营销型网站建设文章目录二叉树9. 二叉树的最大深度10. 二叉树的最小深度11. 完全二叉树的节点个数12. 平衡二叉树二叉树 9. 二叉树的最大深度 104. 二叉树的最大深度 思路1#xff1a; 递归找左右子树的最大深度#xff0c;选择最深的 1#xff08;即加上当前层#xff09;。 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;queueTreeNode * 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;queueTreeNode * 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} - 12depth−1 利用该条件来避免遍历整个满二叉树只需要遍历其最左最右两分支的深度即可O(logn)O(logn)O(logn)。遍历二叉树的递归层数 O(logn)O(logn)O(logn) 。时间复杂度是 O(logn∗logn)O(logn*logn)O(logn∗logn) 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;stackTreeNode * 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;stackTreeNode * 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://www.hkea.cn/news/14564303/

相关文章:

  • 中小企业加盟网站建设wordpress直播播放器
  • 网站名 注册京粉购物网站怎么做
  • 熊掌号如何做网站江西网站建设公司排名
  • 郑州品牌设计公司天津百度推广优化排名
  • 电大考试亿唐网不做网站做品牌传奇手游最新下载
  • 谷歌网站提交入口android官网下载
  • asp网站会员管理模板湖州市建设局网站6
  • 用app怎么样建网站深圳设计公司vi设计模板
  • 中国城乡住房和城乡建设部网站芜湖有哪些知名企业
  • 网站备案收费幕布oyster wordpress
  • 商城网站建设运营协议书网络工具
  • 企业网站建设内容报价保定公司做网站
  • 优秀网站设计书籍设计海报网站
  • 太原网站设计公司最好的设计公司
  • 如何在360网页上做公司网站常熟沿江开发区人才网最新招聘
  • the7做的网站wordpress程序的主题
  • 网站要怎么样做排名才上得去贵德网站建设公司
  • 莒南县建设局网站网站建设与管理 需求分析
  • 网站超级链接专门做海外服装购的网站有哪些
  • 福州网站建设专业定制wordpress首页调用评论
  • dede网站栏目管理如何建设站长之家工具高清
  • 建设旅游网站的费用预算企业网络费用
  • 二维码网页制作免费网站制作如何做网站赚流量钱
  • wordpress网站导航菜单插件server2012 wordpress
  • 自己怎样制作网站南京seo代理商
  • 具有口碑的柳州网站建设价格深圳公司注销流程
  • 郴州网站建设软件定制开发平台龙岩解除高风险区
  • 网站网格设计百度一下建设部网站
  • 冷库建设网站django网站开发实例
  • 用vs2010做网站导航长沙设计网站效果