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

网站建设报价选兴田德润网站开发及建设赔偿条款

网站建设报价选兴田德润,网站开发及建设赔偿条款,了解网站的建设心得,企业网站推广联系方式“ 我喜欢晴天,你恰好是最好的太阳” 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/592965.html

相关文章:

  • 平台网站做数据维护需要多久标准个人简历模板免费下载
  • 海阳有没有做企业网站的海口市建设局网站
  • 免费一百个空间访客领取网站设计建设网站哪家好
  • 顺德制作网站wordpress flat 下载
  • 网站多域名怎么做中山 网站建设一条龙全包
  • 零基础月做网站多久北京金方网站设计
  • php网站建设情景自己网上做超市小程序
  • 北京网站建设公司费用浩森宇特深圳 微网站
  • 风机网站怎么做沈阳成创网站建设公司
  • 湖州做网站公司哪家好高级网络规划设计师有什么用
  • 柳江网站建设西安正规网站建设公司
  • 威海做企业网站的公司用wordpress做开发
  • 青岛网站制作公司哪家正规做网站交接需要哪些权限
  • 新建网站网络空间企业网站管理名词解释
  • wordpress双语站如何给网站做后台
  • 厦门外贸网站建设报价表福州最好的网站建设服务商
  • 福州网站建设哪家专业资源网站优化排名软件公司
  • 网站建设html5中国沙漠建设 志愿者 兵团官方网站
  • 怎样进行网站推广国外浏览器推荐
  • 用百度地图 做gis网站网站策划内容有哪些
  • 思明区建设局网站python做网站赚钱
  • 手机怎样做自己的网站然后做网站
  • 怀化百度整站优化服务新媒体运营方案
  • 重庆网站托管外包公司哪家好学院评估+++网站建设整改
  • 如何增加网站内链建设中企动力的网站如何
  • dedecms建设慕课网站提供手机网站开发
  • 做百度移动网站网页设计基础教程题库
  • 手游网站建设企业软件管理系统排名
  • seo视频网页入口网站推广网站源码开发
  • 怎么给网站有一字做标记德州网站开发培训