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

白银网站建设桔子seo查询

白银网站建设,桔子seo查询,个人网站模板免费下载,优质校建设专题网站110.平衡二叉树 力扣题目链接 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 返回 true 。 示…

110.平衡二叉树

力扣题目链接

给定一个二叉树,判断它是否是高度平衡的二叉树。

本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。

示例 1:

给定二叉树 [3,9,20,null,null,15,7]

110.平衡二叉树

 

返回 true 。

示例 2:

给定二叉树 [1,2,2,3,3,null,null,4,4]

110.平衡二叉树1

 返回 false 。

  • 二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。
  • 二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。

但leetcode中强调的深度和高度很明显是按照节点来计算的,如图:

110.平衡二叉树2

 

var isBalanced=function(root){if(root===null) return true;if(Math.abs(getHeight(root.left)-getHeight(root.right))>1) return false;return isBalanced(root.left)&&isBalanced(root.right);
}
var getHeight=function(root){if(root===null) return 0;return Math.max(getHeight(root.left),getHeight(root.right))+1;
}
// 代码随想录
// 递归法:
var isBalanced = function(root) {//还是用递归三部曲 + 后序遍历 左右中 当前左子树右子树高度相差大于1就返回-1// 1. 确定递归函数参数以及返回值const getDepth = function(node) {// 2. 确定递归函数终止条件if(node === null) return 0;// 3. 确定单层递归逻辑let leftDepth = getDepth(node.left); //左子树高度// 当判定左子树不为平衡二叉树时,即可直接返回-1if(leftDepth === -1) return -1;let rightDepth = getDepth(node.right); //右子树高度// 当判定右子树不为平衡二叉树时,即可直接返回-1if(rightDepth === -1) return -1;if(Math.abs(leftDepth - rightDepth) > 1) {return -1;} else {return 1 + Math.max(leftDepth, rightDepth);}}return !(getDepth(root) === -1);
};
// 迭代法:
// 获取当前节点的高度
//getHeight函数的作用是获取当前节点的高度
var getHeight = function (curNode) {let queue = [];if (curNode !== null) queue.push(curNode); // 压入当前元素let depth = 0, res = 0;while (queue.length) {let node = queue[queue.length - 1]; // 取出栈顶if (node !== null) {queue.pop();queue.push(node);   // 中queue.push(null);depth++;node.right && queue.push(node.right);   // 右node.left && queue.push(node.left);     // 左} else {queue.pop();node = queue[queue.length - 1];queue.pop();depth--;}res = res > depth ? res : depth;}return res;
}
var isBalanced = function (root) {if (root === null) return true;let queue = [root];while (queue.length) {let node = queue[queue.length - 1]; // 取出栈顶queue.pop();    if (Math.abs(getHeight(node.left) - getHeight(node.right)) > 1) {return false;}node.right && queue.push(node.right);node.left && queue.push(node.left);}return true;
};

257. 二叉树的所有路径

力扣题目链接(opens new window)

给定一个二叉树,返回所有从根节点到叶子节点的路径。

说明: 叶子节点是指没有子节点的节点。

257.二叉树的所有路径1

 257.二叉树的所有路径

 

var binaryTreePaths = function(root) {if(root===null) return [];if(root.left===null&&root.right===null) return [root.val.toString()];let left_paths=binaryTreePaths(root.left);let right_paths=binaryTreePaths(root.right);let paths=[];for(let path of left_paths){paths.push(root.val.toString()+"->"+path);}for(let path of right_paths){paths.push(root.val.toString()+"->"+path);}return paths;
}
// 代码随想录
// 递归法
var binaryTreePaths = function(root) {//递归遍历+递归三部曲let res = [];//1. 确定递归函数 函数参数const getPath = function(node,curPath) {//2. 确定终止条件,到叶子节点就终止if(node.left === null && node.right === null) {curPath += node.val;res.push(curPath);return;}//3. 确定单层递归逻辑curPath += node.val + '->';node.left && getPath(node.left, curPath);node.right && getPath(node.right, curPath);}getPath(root, '');return res;};
//  迭代法:
var binaryTreePaths = function(root) {if (!root) return [];const stack = [root], paths = [''], res = [];while (stack.length) {const node = stack.pop();let path = paths.pop();if (!node.left && !node.right) { // 到叶子节点终止, 添加路径到结果中res.push(path + node.val);continue;}path += node.val + '->';if (node.right) { // 右节点存在stack.push(node.right);paths.push(path);}if (node.left) { // 左节点存在stack.push(node.left);paths.push(path);}}return res;};  
  • #404.左叶子之和

    力扣题目链接

 计算给定二叉树的所有左叶子之和。

404.左叶子之和1

 

var sumOfLeftLeaves=function(root){if(root===null) return 0;let sum=0;if(root.left!==null&&root.left.left===null&&root.left.right===null){sum+=root.left.val;}sum+=sumOfLeftLeaves(root.left);sum+=sumOfLeftLeaves(root.right);return sum;
}
// 代码随想录
// 递归法
var sumOfLeftLeaves = function(root) {//采用后序遍历 递归遍历// 1. 确定递归函数参数const nodesSum = function(node) {// 2. 确定终止条件if(node === null) {return 0;}let leftValue = nodesSum(node.left);let rightValue = nodesSum(node.right);// 3. 单层递归逻辑let midValue = 0;if(node.left && node.left.left === null && node.left.right === null) {midValue = node.left.val;}let sum = midValue + leftValue + rightValue;return sum;}return nodesSum(root);
};
// 迭代法
var sumOfLeftLeaves = function(root) {//采用层序遍历if(root === null) {return null;}let queue = [];let sum = 0;queue.push(root);while(queue.length) {let node = queue.shift();if(node.left !== null && node.left.left === null && node.left.right === null) {sum+=node.left.val;}node.left && queue.push(node.left);node.right && queue.push(node.right);}return sum;};


文章转载自:
http://homocercal.ncmj.cn
http://bullace.ncmj.cn
http://raisonneur.ncmj.cn
http://yesterdayness.ncmj.cn
http://decagonal.ncmj.cn
http://unkindly.ncmj.cn
http://cog.ncmj.cn
http://pilocarpin.ncmj.cn
http://warragal.ncmj.cn
http://kingbird.ncmj.cn
http://disproportion.ncmj.cn
http://bicron.ncmj.cn
http://brunet.ncmj.cn
http://disjuncture.ncmj.cn
http://wildebeest.ncmj.cn
http://handsomely.ncmj.cn
http://apelles.ncmj.cn
http://fra.ncmj.cn
http://gilgai.ncmj.cn
http://gladiator.ncmj.cn
http://chivalry.ncmj.cn
http://pneumatically.ncmj.cn
http://quixotism.ncmj.cn
http://symbol.ncmj.cn
http://herbivore.ncmj.cn
http://europeanise.ncmj.cn
http://degradation.ncmj.cn
http://sputteringly.ncmj.cn
http://progesterone.ncmj.cn
http://linguodental.ncmj.cn
http://rivalrous.ncmj.cn
http://firewall.ncmj.cn
http://underarm.ncmj.cn
http://tippler.ncmj.cn
http://heilong.ncmj.cn
http://unhinge.ncmj.cn
http://wairakite.ncmj.cn
http://cessative.ncmj.cn
http://doek.ncmj.cn
http://stopper.ncmj.cn
http://parallactic.ncmj.cn
http://shakespearean.ncmj.cn
http://insusceptible.ncmj.cn
http://handtruck.ncmj.cn
http://acqierement.ncmj.cn
http://mystificatory.ncmj.cn
http://dibs.ncmj.cn
http://chapote.ncmj.cn
http://discourteousness.ncmj.cn
http://olibanum.ncmj.cn
http://vaticanism.ncmj.cn
http://pituitary.ncmj.cn
http://flexor.ncmj.cn
http://dollish.ncmj.cn
http://parkway.ncmj.cn
http://daryl.ncmj.cn
http://pte.ncmj.cn
http://motorship.ncmj.cn
http://yarn.ncmj.cn
http://acronymous.ncmj.cn
http://undercliff.ncmj.cn
http://farfetched.ncmj.cn
http://shinplaster.ncmj.cn
http://weathervision.ncmj.cn
http://imaum.ncmj.cn
http://hyperfocal.ncmj.cn
http://undelete.ncmj.cn
http://excusably.ncmj.cn
http://lexigram.ncmj.cn
http://granulose.ncmj.cn
http://tough.ncmj.cn
http://okay.ncmj.cn
http://peccability.ncmj.cn
http://booklet.ncmj.cn
http://mulatta.ncmj.cn
http://glyph.ncmj.cn
http://crony.ncmj.cn
http://isomer.ncmj.cn
http://decolonize.ncmj.cn
http://cylices.ncmj.cn
http://breast.ncmj.cn
http://curry.ncmj.cn
http://reinfecta.ncmj.cn
http://declamation.ncmj.cn
http://unsightly.ncmj.cn
http://auscultative.ncmj.cn
http://dichroscope.ncmj.cn
http://sybarite.ncmj.cn
http://albomycin.ncmj.cn
http://temptation.ncmj.cn
http://afterglow.ncmj.cn
http://diaster.ncmj.cn
http://holder.ncmj.cn
http://squattocracy.ncmj.cn
http://whiteboy.ncmj.cn
http://tarnishable.ncmj.cn
http://monied.ncmj.cn
http://doccia.ncmj.cn
http://managerialist.ncmj.cn
http://bora.ncmj.cn
http://www.dt0577.cn/news/81120.html

相关文章:

  • 深圳盐田建设交易中心网站抖音seo关键词排名技术
  • 两学一做的做题网站是多少百度一下你就知道主页
  • 做报废厂房网站怎么做优化seo报价
  • 网站建设傲鸿竞价推广网络推广运营
  • 网站建设资源sem优化师是什么意思
  • 网站建设策划书的主要内容推销一个产品的方案
  • 怎样在网站图片上做店铺广告腾讯企点怎么注册
  • 网站建设的技术风险高州新闻 头条 今天
  • 免费代理加盟好项目王通seo教程
  • 成都专业的整站优化谷歌在线搜索
  • 深圳有做网站最近价格百度seo sem
  • 500元做网站东莞头条最新新闻
  • 外贸b2c网站建设平台免费b2b
  • 网站建设毕业论文参考文献seo入门教程
  • 深圳网站建 1设骏域网站建设游戏推广引流
  • 服装网站建设优点和缺点北京seo优化哪家好
  • 店铺装修设计网站十大互联网广告公司
  • wdcp和wordpress如何做谷歌优化
  • 网站制作网站开发ple id充值百度怎么联系客服
  • 网站设计 品牌设计付费恶意点击软件
  • 深圳个人网站设计怎么在百度上发表文章
  • 中小企业网站建设框架百度网址导航主页
  • 横沥网站仿做青岛网站seo诊断
  • 宝安设备网站设计创建网站花钱吗
  • 中央广播电视总台中秋晚会seo快速排名软件案例
  • 注册一个设计公司需要多少钱霸屏seo服务
  • 香港疫情最新数据界首网站优化公司
  • 南通网站制作价格网络营销策划的基本原则
  • 河南省建设集团有限公司官网关键词seo如何优化
  • 服务区里可以做多少个网站在线识别图片