Java 如何在树中求右子代的高度减去左子代的高度
我有一个java类,用于树的节点Java 如何在树中求右子代的高度减去左子代的高度,java,data-structures,binary-tree,avl-tree,Java,Data Structures,Binary Tree,Avl Tree,我有一个java类,用于树的节点 public class Node { Node (int v, Node lt, Node rt){ value = v; left = lt; right = rt; height = 0; parent = null; } Node (int v){ this (v, null, null); } int value; int height; Node left; Node right; Node pa
public class Node {
Node (int v, Node lt, Node rt){
value = v;
left = lt;
right = rt;
height = 0;
parent = null;
}
Node (int v){
this (v, null, null);
}
int value;
int height;
Node left;
Node right;
Node parent;
}
此节点的高度为(this.right.height-this.left.height)
若一个节点只有一个子节点,并且它的子节点是叶子,那个么这个节点的高度是1,若子节点是右子节点,那个么这个节点的高度是-1,若子节点是左子节点
我该怎么做
(我想写一个avl树)试试下面的一个
public int height(Node root){
if(root == null)return 0;
return 1+Max(height(root.left),height(root.right));
}
heightDifference = (height(this.right) - height(this.left))
限制左侧和右侧的高度差仅为1倍。你可以看一看,虽然它不被接受。