1.题目:

求任意一颗二叉树最长路径长度

样例:如下所示

图一树的最长路径长度为4,图二的最长路径长度为7,图一最长路径经过根节点,顶点为1,图二不经过,顶点为3

2.思路

树中任意两个节点之间,连接起来的路径最长。方法就是求出每个节点的左子树和右子树的高度,两者相加就是当前节点的最长路径,然后比较每个节点的最长路径,最大的就是结果

3.实现方法

定义一个静态变量MaxLength记录每一步最大长度,采取前序遍历来遍历每一个节点,在遍历过程中,对当前节点的最长路径进行比较,对于每一个节点最长路径求法,先求出它左子树和右子树的高度(节点数最多的路径),然后相加即为当前节点最长路径

代码如下:

static  Integer MaxLength=0;//记录最长路径
//遍历整棵树,得到最长路径
public void getLength(TreeNode t){if(t!=null){MaxLength=Math.max(LengthTree(t),MaxLength);getLength(t.lchild);getLength(t.rchild);}
}
//得到当前节点的最长路径
public int LengthTree(TreeNode t){if (t==null)return 0;int left=heighTree(t.lchild);int right=heighTree(t.rchild);int CurMax=left+right;return CurMax;
}
//求二叉树最大高度
public int heighTree(TreeNode t){if (t==null)return 0;elsereturn Math.max(heighTree(t.lchild),heighTree(t.rchild))+1;
}

4.结果

图一树最长路径

图二最长路径结果

求二叉树最长路径长度和相关推荐

  1. C语言实现二叉树前序中序后序递归与非递归遍历、层次遍历、二叉树带权路径长度

    用C语言实现了二叉树的初始化,循环队列与顺序栈的建立. 利用递归与非递归方式实现前序遍历.中序遍历.后序遍历. 利用队列实现了层次遍历. 求得了二叉树带权路径长度 #include<stdio. ...

  2. 二叉树-求第一条最长路径长度并输出路径

    求第一条最长路径长度并输出路径 算法思想 利用递归遍历思想,先求出二叉树最长路径也就是当前树的高度 再调用求路径长度的函数判断指针走向输出路径 int LongestPath(BiTree *T){ ...

  3. 求二叉树中的第一条最长路径长度,并输出最长路径上的节点

    #include <stdio.h> #define MaxSize 1000typedef struct BiTNode {int data;struct BiTNode *lchild ...

  4. 在二叉树中找到累加和为指定值的最长路径长度

    在二叉树中找到累加和为指定值的最长路径长度 给定一棵二叉树的头节点 head 和一个 32 位整数 sum,二叉树节点值类型为整型,求累加和为 sum 的最长路径长度.路径是指从某个节点往下,每次最多 ...

  5. 左神算法:在二叉树中找到累加和为指定值的最长路径长度(Java版)

    本题来自左神<程序员代码面试指南>"在二叉树中找到累加和为指定值的最长路径长度"题目. 题目 给定一棵二叉树的头节点 head 和一个 32 位整数 sum,二叉树节点 ...

  6. 3006基于二叉链表的二叉树最长路径的求解(附思路)

    描述 设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,编写算法求出该二叉树中第一条最长的路径. 输入 多组数据.每组数据一行,为二叉树的先序序列(序列中元素为'0'时,表示该结点为 ...

  7. php 实现二叉树的最大深度_Java如何实现求二叉树的最大深度(附代码)

    本篇文章给大家带来的内容是关于Java如何实现求二叉树的最大深度(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远 ...

  8. 求二叉树中从根结点到叶子结点的路径

    /** *    实验题目: *        求二叉树中从根结点到叶子结点的路径 *    实验目的: *        掌握二叉树遍历算法的应用,熟练使用先序.中序.后序3种递归 *    和非递 ...

  9. 2021-10-09 求二叉树的高度(递归和迭代版本)

    剑指 Offer 55 - I. 二叉树的深度 输入一棵二叉树的根节点,求该树的深度.从根节点到叶节点依次经过的节点(含根.叶节点)形成树的一条路径,最长路径的长度为树的深度. 和题解写的一比,我写的 ...

最新文章

  1. CloudStack设计思想
  2. web应用如何确定能同时允许多少用户连接?_Web测试环境搭建+测试要点汇总
  3. 什么是分镜头剧本?(分镜头剧本是将文字转换成立体视听形象的中间媒介。主要任务是根据解说词和电视文学脚本来设计相应画面,配置音乐音响,把握片子的节奏和风格等。)
  4. IT互联网公司的笔试的输入输出- c++ python
  5. JVM笔记(一)数字在JVM中的表示
  6. 美女视频主持 页面右下角弹窗美女介绍
  7. 关于office2016和visio2016无法共存的问题
  8. Python压缩图片到指定大小
  9. 一种考虑时空关联的深度学习短时交通流预测方法
  10. (总结归纳)常用电子元件,封装,库
  11. xp系统计算机怎么设置权限设置,xp系统共享权限如何设置|xp系统共享权限设置方法...
  12. java汉字字符串转拼音
  13. rman归档日志备份到磁盘并恢复的测试
  14. NOIP 2014 primeの酱油记+题解
  15. AI基础:入门人工智能必看的论文
  16. 转 Android屏幕适配全攻略(最权威的官方适配指导)
  17. Modeling Personalized Item Frequency Information for Next-basket Recommendation
  18. Wireshark修改数据包
  19. 划分春夏秋冬四季的气象学标准
  20. 2014全国专业技术人员计算机应用能力考试科目,全国专业技术人员计算机应用能力考试模块(2014)...

热门文章

  1. apache 编译支持php_apache2 不支持php文件 解决办法(示例代码)
  2. Android 蓝牙4.0(BLE)开发实现对蓝牙的写入数据和读取数据
  3. 七十七、React中的propTypes,defaultProps和生命周期函数
  4. 期末复习、化学反应工程科目(第二章)
  5. R 语言聚类关联规则
  6. 从近年顶会论文看领域自适应(Domain Adaptation)最新研究进展
  7. 深度学习开发者的AI Party来了!WAVE SUMMIT+2021与你相约双十二
  8. 用最简单的方式训练史上最强ResNet-50,性能超过魔改结构的ResNeSt
  9. 浅谈零样本网络表示学习
  10. 周志华《机器学习》西瓜书出全新视频课啦!