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

做网站办贷款百度推广二级代理商

做网站办贷款,百度推广二级代理商,网站开发运营成本,网页编辑器手机版题目 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1: 输入:root [1,2,3,4,5]…

题目

给你一棵二叉树的根节点,返回该树的 直径 。

二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。

两节点之间路径的 长度 由它们之间边数表示。

示例 1:

输入:root = [1,2,3,4,5]
输出:3
解释:3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 的长度。

示例 2:

输入:root = [1,2]
输出:1

提示:

  • 树中节点数目在范围 [1, 10^4] 内
  • -100 <= Node.val <= 100

 

解答

源代码

/*** 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 {private int max = 0;public int diameterOfBinaryTree(TreeNode root) {depth(root);return max;}public int depth(TreeNode node) {if (node == null) {return 0;}int left = depth(node.left);int right = depth(node.right);max = Math.max(max, left + right);return Math.max(left, right) + 1;}
}

总结

按理还是以每个节点作输入进行递归,但是这道题没办法直接让递归返回的就是我们需要的结果。因为我们想要求的直径肯定包括一个节点(我们设为A)的左右两条边,但是递归再向上返回时,A节点的父节点只需要A的一条边。所以我们把递归函数设计为计算出某个节点的深度,在进行递归时顺便更新成员变量max(即我们所求的直径),计算方法就是当前节点左右子节点的深度相加。

http://www.ds6.com.cn/news/35397.html

相关文章:

  • html5旅游网站模板seo短视频保密路线
  • html怎么添加动态图片公众号排名优化软件
  • 网站建设与域名建设青岛网站推广公司排名
  • 有一个网站专门做民宿百度一下就一个
  • 淘宝网站c#设计怎么做长沙seo运营
  • 网站建站的类型北京网站优化对策
  • 怎样可以免费做网站淘宝数据分析工具
  • 宁波网站公司seo整站优化新站快速排名
  • 大同百度做网站多少钱市场推广渠道有哪些
  • 网络公司名字最有独特性的百度地图优化排名方法
  • 专业的led网站建设搜索引擎优化方法有哪些
  • wordpress多站点的robots网站域名ip查询
  • 网站定制网页设计专业做网站设计
  • github允许做网站服务器深圳关键词快速排名
  • 网站建设投标书比较好用的搜索引擎
  • 淘宝客cms建站教程淘宝网页版
  • 网站重新建设的申请国际时事新闻
  • 公司做网站需要什么网站优化外包找谁
  • 网站网页的收录数量注册商标查询官网入口
  • 网站大全免黄sem和seo是什么
  • 南宁新闻网官方网搜狗seo排名软件
  • 简述网站制作过程百度指数使用方法
  • 安徽建设厅网站节能北备案网络推广怎么赚钱
  • 做直播网站要什么证吗如何推广自己产品
  • 怎么做销售网站武汉百度推广seo
  • 网站搜索怎么做php产品推广怎么做
  • 建设银行网站如何查询开户行手机百度问一问
  • 网站系统怎么做网络营销服务公司有哪些
  • 50万做网站怎么利用互联网推广
  • 公司网站免费申请百度权重等级