package com.douyin;
/*
https://blog.csdn.net/qq_40320556/article/details/92772467
* */
public class FindTreeMaxLength {
class Node{
int value;
Node leftNode;
Node rightNode;
Node(int value){
this.value=value;
this.leftNode=null;
this.rightNode=null;
}
}
static int max=0;
/*
此为求节点node的高度,即取 左节点和右节点的最大高度+1,作为节点node的高度。
而2点之间的最大值,只需求左右树之间的高度和,以及和现在的最大值,此即为最大值。
* */
public int getHeight(Node node){
if(node==null)
return 0;
if(node.leftNode==node.rightNode){
return 1;
}
int leftLen=getHeight(node.leftNode);
int rightLen=getHeight(node.rightNode);
max=Math.max(leftLen+ rightLen,max);
return Math.max(rightLen, leftLen)+1;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Node node=null;
new FindTreeMaxLength().getHeight(node);
//最大值为max
System.out.println("最大长度为:"+max);
}
}