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

建设大型网站阿里云主机wordpress

建设大型网站,阿里云主机wordpress,猎头公司排行,wordpress joomla seo110.平衡二叉树 力扣题目链接 给定一个二叉树#xff0c;判断它是否是高度平衡的二叉树。 本题中#xff0c;一棵高度平衡二叉树定义为#xff1a;一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 返回 true 。 示… 110.平衡二叉树 力扣题目链接 给定一个二叉树判断它是否是高度平衡的二叉树。 本题中一棵高度平衡二叉树定义为一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7]   返回 true 。 示例 2: 给定二叉树 [1,2,2,3,3,null,null,4,4]  返回 false 。 二叉树节点的深度指从根节点到该节点的最长简单路径边的条数。二叉树节点的高度指从该节点到叶子节点的最长简单路径边的条数。但leetcode中强调的深度和高度很明显是按照节点来计算的如图   var isBalancedfunction(root){if(rootnull) return true;if(Math.abs(getHeight(root.left)-getHeight(root.right))1) return false;return isBalanced(root.left)isBalanced(root.right); } var getHeightfunction(root){if(rootnull) 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) 给定一个二叉树返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。     var binaryTreePaths function(root) {if(rootnull) return [];if(root.leftnullroot.rightnull) return [root.val.toString()];let left_pathsbinaryTreePaths(root.left);let right_pathsbinaryTreePaths(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.左叶子之和 力扣题目链接 计算给定二叉树的所有左叶子之和。 var sumOfLeftLeavesfunction(root){if(rootnull) return 0;let sum0;if(root.left!nullroot.left.leftnullroot.left.rightnull){sumroot.left.val;}sumsumOfLeftLeaves(root.left);sumsumOfLeftLeaves(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) {sumnode.left.val;}node.left queue.push(node.left);node.right queue.push(node.right);}return sum;};
http://www.dnsts.com.cn/news/254682.html

相关文章:

  • 顺德新网站制作做羞羞的事情的网站
  • 展示产品的网站 个人备案还是企业企业建设网站网站建设公司
  • 做一个静态网站要多少钱加强经管学院网站建设
  • 做seo的网站有那些代码生成器app下载手机版
  • 吉林省建设安全厅官方网站高台网站建设
  • 做专题页的背景网站2023年楼市将迎来抛售潮
  • 做的好微信商城网站ps做电商网站流程图
  • 建站之星模板制作wordpress h5制作插件
  • wordpress更改头像爱站seo工具包免费版
  • 阿里巴巴怎么做不花钱的网站公司网站建设应包含哪几个板块
  • 潍坊建设工程信息网站在线设计头像
  • 怎么查网站域名备案知名的传媒行业网站开发
  • 做暧嗳xo小视频免费网站十堰seo优化
  • 网站页面建设需要ps吗设计公司灰白色调网站
  • 数据网站有哪些百度云wordpress怎么搭建
  • 网站推广短信分公司注册流程网上注册
  • 做一个免费网站的流程python做网站还是数据
  • 学做烤制食品的网站wordpress 动态加载
  • 珠海市网站建设品牌凌风wordpress视频
  • 做暧暖的免费网站网站建设页面设计
  • 在pc端预览手机网站linux新建网站
  • 织梦新闻门户网站模板 原创精品网站界面是什么做的
  • 做跨境电商的人才网站做球形全景的网站
  • 做海岛旅游预定网站的百度优化师
  • 网站建设学习视频沧州企业做网站
  • 家具营销型网站9个常用的wordpress sql查询命令
  • vps搭建个人网站网站后台默认用户名
  • 建设机械网站策划网页制作的教程视频
  • 超全的开源建站系统大全个人可以做外贸的网站
  • 免费起名网最好的网站如何做一个单页面的网站