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

合肥网站设计 goz国内专业的seo机构

合肥网站设计 goz,国内专业的seo机构,开发建设网站需要什么人才,如何使用开源程序做网站“ 我喜欢晴天,你恰好是最好的太阳” 226.翻转二叉树 力扣题目链接(opens new window) 翻转一棵二叉树。 这道题我们可以通过递归法解决,我们只要递归的把每一个节点的左右孩子反转一下就能解决了。 代码如下: var invertTree function(ro…

 

 

“ 我喜欢晴天,你恰好是最好的太阳”


226.翻转二叉树

力扣题目链接(opens new window)

翻转一棵二叉树。

226.翻转二叉树

这道题我们可以通过递归法解决,我们只要递归的把每一个节点的左右孩子反转一下就能解决了。 

 代码如下:

var invertTree = function(root) {// 终止条件if (!root) {return null;}// 交换左右节点const rightNode = root.right;root.right = invertTree(root.left);root.left = invertTree(rightNode);return root;
};

 

101. 对称二叉树

力扣题目链接(opens new window)

给定一个二叉树,检查它是否是镜像对称的。

101. 对称二叉树

 

首先想清楚,判断对称二叉树要比较的是哪两个节点,要比较的可不是左右节点!

对于二叉树是否对称,要比较的是根节点的左子树与右子树是不是相互翻转的,理解这一点就知道了其实我们要比较的是两个树(这两个树是根节点的左右子树),所以在递归遍历的过程中,也是要同时遍历两棵树。

这个题的核心就是在遍历的同时遍历两棵树!

本题遍历只能是“后序遍历”,因为我们要通过递归函数的返回值来判断两个子树的内侧节点和外侧节点是否相等。

正是因为要遍历两棵树而且要比较内侧和外侧节点,所以准确的来说是一个树的遍历顺序是左右中,一个树的遍历顺序是右左中。

var isSymmetric = function(root) {// 使用递归遍历左右子树 递归三部曲// 1. 确定递归的参数 root.left root.right和返回值true false const compareNode = function(left, right) {// 2. 确定终止条件 空的情况if(left === null && right !== null || left !== null && right === null) {return false;} else if(left === null && right === null) {return true;} else if(left.val !== right.val) {return false;}// 3. 确定单层递归逻辑let outSide = compareNode(left.left, right.right);let inSide = compareNode(left.right, right.left);return outSide && inSide;}if(root === null) {return true;}return compareNode(root.left, root.right);
};

 

 

104.二叉树的最大深度

力扣题目链接(opens new window)

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

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

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

104. 二叉树的最大深度

返回它的最大深度 3 。

 这道题我能想到的第一步就是递归,遍历到最底层;

这道题的递归思想是这样的:我们分别递归左右子树的最大深度,并且在递归过程中不断取他们的最大值,最后加上根节点就能得到最大深度了。

代码如下:

var maxdepth = function(root) {//使用递归的方法 递归三部曲//1. 确定递归函数的参数和返回值const getdepth = function(node) {//2. 确定终止条件if(node === null) {return 0;}//3. 确定单层逻辑let leftdepth = getdepth(node.left);let rightdepth = getdepth(node.right);let depth = 1 + Math.max(leftdepth, rightdepth);return depth;}return getdepth(root);
};

 

559.n叉树的最大深度

力扣题目链接(opens new window)

给定一个 n 叉树,找到其最大深度。

最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。

例如,给定一个 3叉树 :

559.n叉树的最大深度

我们应返回其最大深度,3。

和上一道题的思路一样,原本是左右节点,现在我们要从左到右依次遍历子节点。

代码如下


 

111.二叉树的最小深度

力扣题目链接(opens new window)

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

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

示例:

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

111.二叉树的最小深度1

返回它的最小深度 2.

这道题我们要注意,左右孩子都为空的时候才算是叶子节点。

var minDepth1 = function(root) {if(!root) return 0;// 到叶子节点 返回 1if(!root.left && !root.right) return 1;// 只有右节点时 递归右节点if(!root.left) return 1 + minDepth(root.right);// 只有左节点时 递归左节点if(!root.right) return 1 + minDepth(root.left);return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
};

 

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

力扣题目链接(opens new window)

给出一个完全二叉树,求出该树的节点个数。

示例 1:

  • 输入:root = [1,2,3,4,5,6]
  • 输出:6

示例 2:

  • 输入:root = []
  • 输出:0

示例 3:

  • 输入:root = [1]
  • 输出:1

提示:

  • 树中节点的数目范围是[0, 5 * 10^4]
  • 0 <= Node.val <= 5 * 10^4
  • 题目数据保证输入的树是 完全二叉树

 这道题的前提是完全二叉树,我们在遍历的时候它肯定会有左右节点知道遍历到叶节点。

代码如下:


110.平衡二叉树

力扣题目链接(opens new window)

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

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

示例 1:

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

110.平衡二叉树

返回 true 。

示例 2:

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

110.平衡二叉树1

返回 false 。

 

1.明确递归函数的参数和返回值

参数:当前传入节点。 返回值:以当前传入节点为根节点的树的高度。

那么如何标记左右子树是否差值大于1呢?

如果当前传入节点为根节点的二叉树已经不是二叉平衡树了,还返回高度的话就没有意义了。

所以如果已经不是二叉平衡树了,可以返回-1 来标记已经不符合平衡树的规则了。

2.明确终止条件

递归的过程中依然是遇到空节点了为终止,返回0,表示当前节点为根节点的树高度为0

3.明确单层递归的逻辑

如何判断以当前传入节点为根节点的二叉树是否是平衡二叉树呢?当然是其左子树高度和其右子树高度的差值。

分别求出其左右子树的高度,然后如果差值小于等于1,则返回当前二叉树的高度,否则返回-1,表示已经不是二叉平衡树了。


257. 二叉树的所有路径

力扣题目链接(opens new window)

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

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

示例: 

257.二叉树的所有路径1

这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。

在这道题目中将第一次涉及到回溯,因为我们要把路径记录下来,需要回溯来回退一个路径再进入另一个路径。

 


 涉及到回溯了,等鼠鼠学了再来详细解释。

http://www.dtcms.com/wzjs/185793.html

相关文章:

  • 怎么做网站推广知乎百度招聘平台
  • 坑梓网站建设服务项目哪里做网络推广
  • 网站建设的目标有哪些公司网站设计图
  • 政府门户网站群建设方案佛山今日头条
  • 网站首页面设计代码人民日报官网
  • 金融做网站seo需要培训才能找到工作吗
  • 旅社网站建设网站页面seo
  • 顺义做网站公司网页设计模板网站
  • ps如何做网站软文之家
  • 网站域名 邮箱google登录入口
  • 通辽做网站有没有网站推广多少钱一年
  • 企业员工信息管理系统郑州seo排名优化
  • 监控视频怎么做直播网站友情链接qq群
  • 中学生在哪里学编程最好网站内部链接优化方法
  • 做网站前宜昌网站建设公司
  • 舆情分析报告范文seo专员工资待遇
  • 网站设计制作的连接方式网络运营推广怎么做
  • 火星wap建站搭建个人网站
  • 天津seo推广方法谷歌优化推广
  • 网站开发如何做账务处理关键词搜索推广排行榜
  • 响应式网站建设必推全网天下外贸推广平台有哪几个
  • mobi域名网站推广计划方案
  • 邢台做网站哪家公司好网络推广人员
  • 自己做坑人网站的软件成都网站建设方案托管
  • 网站开发销售话术引擎优化seo怎么做
  • 2021网站建设前景怎么样谷歌站长平台
  • 丰台怎样做网站2024年最新时事新闻
  • 没有版权的图片网站百度手机助手app下载并安装
  • 用数据库代码做家乡网站爱站网注册人查询
  • 怎么做dnf辅助网站上海品牌推广公司