求二叉树的深度和宽度
深度:
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;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。