深度:

intlength(BiTreet){intdepth2=0;intdepth3=0;if(t==null)return0;//右子树的深度depth2=length(t.right);//左子树的深度depth3=length(t.left);if(depth2>depth3)returndepth2+1;elsereturndepth3+1;}

宽度:

intgetMaxWidth(TreeNoderoot){if(root==null)return0;Queue<TreeNode>queue=newArrayDeque<TreeNode>();intmaxWitdth=1;//最大宽度queue.add(root);//入队while(true){intlen=queue.size();//当前层的节点个数if(len==0)break;while(len>0){//如果当前层,还有节点TreeNodet=queue.pop();len--;if(t.left!=null)queue.push(t.left);//下一层节点入队if(t.right!=null)queue.add(t.right);//下一层节点入队}maxWitdth=Math.max(maxWitdth,queue.size());}returnmaxWitdth;}