1 二叉树的深度
【定义】结点的层次从根开始定义,根为第一层,树中结点的最大层次为树的深度或高度。【思路】如果一棵树只有一个结点,它的深度为1。如果根结点只有左子树而没有右子树,那么树的深度应该是其左子树的深度加1;同样如果根结点只有右子树而没有左子树,那么树的深度应该是其右子树的深度加1。如果既有右子树又有左子树呢?那该树的深度就是其左、右子树深度的较大值再加1。
public int depth(Node node){
if(node==null)
return 0;
int nLeft=depth(node.left);
int nRight=depth(node.right);
return (nLeft>nRight) ? (nLeft+1):(nRight+1);
}//end depth()
2 判断二叉树是平衡二叉树
【问题】输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。