二叉树中结点的最大距离
来源:互联网 发布:软媒魔方怎么优化win10 编辑:程序博客网 时间:2024/04/29 16:13
问题:结点的距离指这两个结点之间边的个数。求一棵二叉树中相距最远的两个结点之间的距离。
思路:首先,求左子树距离根结点的最大距离,记为leftMaxDistance,其次,求右子树距离根结点的最大距离,记为rightMaxDistance,那么二叉树中结点的最大距离maxDistance满足maxDistance=leftMaxDistance+rightMaxDistance.
package Tree;/** * Created by Administrator on 2017/10/2. */class Node{ public int data; public Node left; public Node right; public int leftMaxDistance; public int rightMaxDistance; public Node(int data){ this.data=data; this.left=null; this.right=null; }}public class MaxDistance { private int maxLen=0; private int max(int a,int b){ return a>b?a:b; } public void findMaxDistance(Node root){ if(root==null) return; if(root.left==null) root.leftMaxDistance=0; if(root.right==null) root.rightMaxDistance=0; if(root.left!=null) findMaxDistance(root.left); if(root.right!=null) findMaxDistance(root.right); //计算左子树中距离根结点的最大距离 if(root.left!=null){ root.leftMaxDistance=max(root.left.leftMaxDistance,root.left.rightMaxDistance)+1; } //计算右子树中距离根结点的最大距离 if(root.right!=null){ root.rightMaxDistance=max(root.right.leftMaxDistance,root.right.rightMaxDistance)+1; } //获取二叉树所有结点的最大距离 if(root.leftMaxDistance+root.rightMaxDistance>maxLen){ maxLen=root.leftMaxDistance+root.rightMaxDistance; } }}
阅读全文
0 0
- 二叉树中结点的最大距离
- 求二叉树中结点的最大距离
- 求二叉树中结点的最大距离
- 求二叉树中结点的最大距离
- 面试题88:二叉树中结点的最大距离
- 求二叉树中结点的最大距离
- 求一个二叉树中两个结点的最大距离
- 求二叉树结点的最大距离
- 二叉树结点的最大距离
- 3.8 二叉树中结点最大的距离 & 重建二叉树 & 顺序遍历二叉树
- 二叉树中两个结点的距离
- 二叉树中两个结点的距离
- 求二叉树的宽度(结点的最大距离)
- 二叉树的最大路径和与最远结点距离
- 求二叉树中结点的最大距离 【微软面试100题 第十一题】
- 数据结构 - 求二叉树中结点的最大距离(C++)
- 求二叉树结点最大距离
- 二叉树中节点的最大距离
- 《安卓ViewPager系列自定义效果,助你打造炫酷轮播图——ViewPager+Glide+PhotView 图片相册加载效果》
- Python异常处理学习笔记
- spark-shell运行时找不到hadoop native库
- NYOJ 2362: 密码锁
- Python与医疗图像4
- 二叉树中结点的最大距离
- (面试题二)【JAVAse部分】修饰符
- 199. Binary Tree Right Side View
- 学习记录1
- C# 对象与JSON字符串互相转换的几种方式
- google hacking 搜索技巧
- Elasticsearch-mapper 基于注解方式生成mapping(2.0以上)
- 深度神经网络结构以及Pre-Training的理解
- Longest Palindromic Substring(算法分析week3)