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

北京东直门 网站建设seoer是什么意思

北京东直门 网站建设,seoer是什么意思,做网页学什么语言,自己制作头像的网站 设计 动漫104. 二叉树的最大深度 - 力扣(LeetCode) 1.深度优先遍历(递归)ps:不好理解,所以我一般不喜欢用递归 思路 典型算法,用递归求出高度,每次都是深度优先。 具体算法 /*** Definition for a bi…

104. 二叉树的最大深度 - 力扣(LeetCode)

1.深度优先遍历(递归)ps:不好理解,所以我一般不喜欢用递归

思路

典型算法,用递归求出高度,每次都是深度优先。

具体算法
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int maxDepth(TreeNode root) {if(root == null){return 0;}else{int lefth=maxDepth(root.left);int righth=maxDepth(root.right);return Math.max(lefth,righth)+1;}}
}

2.深度优先遍历(栈)

思路

(1)设置两个栈,分别记录节点与对应节点的高度,因此要求同时进push与出pop

(2)采用前序遍历的方法,先将节点的右节点入栈,然后是左节点入栈,每次进栈高度均加一。然后每次循环都判断当前节点的高度是不是最高的。

具体代码
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int maxDepth(TreeNode root) {if(root==null) return 0;int ans=0;Deque<TreeNode> dq = new LinkedList<>();Deque<Integer> nh = new LinkedList<>();dq.push(root);nh.push(1);while(!dq.isEmpty()){TreeNode currn = dq.pop();int currh=nh.pop();ans=Math.max(ans,currh);if(currn.right!=null){dq.push(currn.right);nh.push(currh+1);}if(currn.left!=null){dq.push(currn.left);nh.push(currh+1);}}return ans;}
}

3.广度优先遍历(队列1)

思路

和栈的思路一模一样,没有区别

具体代码
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int maxDepth(TreeNode root) {if(root==null) return 0;int ans=0;Deque<TreeNode> dq = new LinkedList<>();Deque<Integer> h = new LinkedList<>();dq.offer(root);h.offer(1);while(!dq.isEmpty()){TreeNode n = dq.poll();int curr = h.poll();ans = Math.max(ans,curr);if(n.left!=null){dq.offer(n.left);h.offer(curr+1);}if(n.right!=null){dq.offer(n.right);h.offer(curr+1);}}return ans;}
}

4.广度优先遍历(队列2)

思路

计算二叉树的层数。

(1)每次循环将本层的节点全部抛出(dq.size()),将下一层的节点全部加入。

(2)没删除一层意味着ans+1.能删除多少层相当于层数有多少。

具体代码
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int maxDepth(TreeNode root) {if(root==null) return 0;int ans=0;Deque<TreeNode> dq = new LinkedList<>();dq.offer(root);while(!dq.isEmpty()){int size = dq.size();while(size>0){TreeNode n = dq.poll();if(n.left!=null){dq.offer(n.left);}if(n.right!=null){dq.offer(n.right);}size--;}ans++;}return ans;}
}

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

相关文章:

  • 衡阳县做淘宝网站建设品牌网络推广外包
  • 用网站素材做logo网络推广技巧
  • 四川网站建设服务公司成都网站建设公司
  • 网站备案流程图14个seo小技巧
  • 东莞网站建设企慕百度指数怎么刷指数方法
  • 企业高端网站制作谷歌chrome浏览器
  • 网站建设岗位内容淘宝关键词
  • dw代码做网站软文撰写案例
  • 可视化网站开发工具搜索引擎广告形式有
  • 上海网站seo牛巨微进入百度app
  • 做非法网站有哪些爱站网关键词怎么挖掘
  • 什么是网站实施打广告去哪个平台免费
  • 怎么建设手机网站自动点击器永久免费版
  • 营销型企业网站模板北京网站外包
  • 县政府网站建设建议视频号视频下载助手app
  • 拼多多网站建设的目的苏州企业网站关键词优化
  • 廊坊建设网站培训心得体会范文
  • 东莞网站设计公司佛山旺道seo优化
  • 什么样的网站开发比较吃香百度seo哪家公司好
  • 呼伦贝尔网站制作上海宝山网站制作
  • 商城网站的psd模板免费下载宁波网络推广团队
  • 有个做h手游的网站seo的基本步骤
  • 如何自己做公司网站山东seo首页关键词优化
  • 可以接单做3d网站微信加精准客源软件
  • 做ppt模版的网站商业公司的域名
  • 新网站怎么做权重媒体资源网官网
  • 网站运营与管理实训报告百度下载免费安装
  • 大连哪家网站公司好2022社会热点事件及看法
  • 写过太原的网站合肥seo外包平台
  • 机械厂做网站到底有没有效果永久免费的培训学校管理软件