python求二叉树高度,求二叉树的高度(深度)和宽度

定义二叉树节点

public class TreeNode{

int val;

TreeNode left = null;

TreeNode right = null;

public TreeNode(int val){

this.val = val;

}

}

求二叉树的深度

使用递归,分别求出左子树的深度、右子树的深度,两个深度的较大值+1

public int maxDepth(TreeNode root){

if(root==null)

return 0;

int leftDepth = maxDepth(root.left);

int rightDepth = maxDepth(root.right);

return 1+Math.max(leftDepth,rightDepth);

}

求二叉树的宽度

public int maxWidth(TreeNode root){

if(root==null){

return 0;

}

int width = 1;

Deque deque = new ArrayDeque<>();

deque.add(root);

while(true){

int len = deque.size();//求当前层节点的个数

if(len == 0)

break;

while(len>0){ //当前层节点全部出列,子节点入列

TreeNode node = deque.poll();

len--;

if(node.left!=null){

deque.add(node.left);

}

if(node.right!=null){

deque.add(node.right);

}

}

width = Math.max(width,deque.size());

}

return width;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/422098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作系统的版本概况

基于MS-DOS的操作系统&#xff1a; Windows 1.0 Windows 2.0 Windows 3.x Windows 95 Windows 98 Windows ME 基于NT的操作系统&#xff1a; Windows NT 3.x Windows NT 4.0 Windows 2000 Windows XP Windows Vista Windows Server 2003 基于CE的操…

PHP中的stdClass 【转】

如果所有的Class都应该存在于一个默认的层级中的话&#xff0c;那么最顶层应该是最为一般的Class&#xff0c;也就是说极为抽象的&#xff0c;每一个下层的Class均比其上层的Class&#xff08;即父类&#xff09;更加专门化。基于该思想&#xff0c;在PHP中&#xff0c;这个顶层…

计算机仿真技术-基于matlab的电子信息类课程课后答案,计算机仿真技术:基于MATLAB的电子信息类课程(第4版)...

目 录第1章 MATLAB语言概述\t11&#xff0e;1 MATLAB语言及特点\t11&#xff0e;2 MATLAB的工作环境\t21&#xff0e;2&#xff0e;1 MATLAB系统的安装\t21&#xff0e;2&#xff0e;2 MATLAB系统的启动\t21&#xff0e;2&#xff0e;3 MATLAB的命令窗口\t31&#xff0e;2&…

UVa11137 Ingenuous Cubrency

原题传送&#xff1a;http://uva.onlinejudge.org/external/111/11137.html 递推&#xff0c;动态规划。 d[i][j]表示使用不超过i的 i 的整数的立方&#xff0c;累加和为 j 的方案数。 则有状态转移方程&#xff1a; d[i][j] d[i - 1][j] d[i][j - i3]。 初始条件d[0][0] 1;…

php jquery模板替换图片,仿jquery插件官网头像更换(原创)

插件描述&#xff1a;一款简单实用的头像更换插件内附有ajax无刷新代码使用方法发布时间&#xff1a;2018-1-25 23:41首先引入jquery:js$(".close,.gb").click(function(){$(".pic_box").animate({top:-1000px},500);}),$(".my_box").click(func…

展示29个美丽的iPhone壁纸

寻找一些最优秀的iPhone壁纸是我们经常要做的工作&#xff0c;iphone的壁纸总是那么好看&#xff0c;关注我博客的人会知道&#xff0c;我经常会发布一些精美的壁纸奉献给大家&#xff0c;今天就发布我精心收藏的美丽壁纸集合&#xff0c; Mind Tree Time & Space TJR Typo…

oracle不属于集合操作,Oracle的几个集合操作

Oracle的几个集合操作Union&#xff0c;对两个结果集进行并集操作&#xff0c;不包括重复行&#xff0c;同时进行默认规则的排序&#xff1b;Union All&#xff0c;对两个结果集进行并集操作&#xff0c;包括重复行&#xff0c;不进行排序&#xff1b;Intersect&#xff0c;对两…

大固其其

那一年我忽然很不好&#xff0c;每天都觉得很困&#xff0c;很困。无论怎么样子眼睛都睁不开&#xff0c;实在没有办法了。于是我辞掉了生活&#xff0c;坐上长途汽车&#xff0c;回到了最北方的乡下奶奶家。奶奶家有一铺炕&#xff0c;很暖很暖。我一扔下包就爬上去睡着了&…

oracle错误12637,TNS-12537 TNSconnection closed ORA-609错误处理

起因&#xff1a;最近研发反应JDBC和PL/SQL工具连接过慢&#xff0c;昨天事情多懒得去管今早检查alter.log后发现报错Fatal NI connect error12637, connecting to:(LOCALNO)VERSIONINFORMATION:TNS for Linux: Version 11.2.0.1.0 - ProductionOracle Bequeath NT Protocol Ad…

用luasocket读取双色球中奖号码

其实是蛮简单的一个功能&#xff0c;就是读取这个页面&#xff1a;http://61.129.89.226/fcopen/cp_kjgg_dfw.jsp?lottery_typessq&lottery_issue2012138&#xff0c; 把某一个期的中奖号码抽取出来。 【luarocks安装library】 首先&#xff0c;如果是想用某个库&#xff…

dedecms更改php目录名称,dedecms修改专题目录名称(路径)

织梦DEDECMS模板的默认专题路径是/special/织梦模板这个感觉还是有些长了&#xff0c;怎么自定义这个路径名称呢&#xff1f;比如我们需要改为/s/&#xff0c;我们可以使用下面的方法来修改&#xff1a;1、首先&#xff0c;我们找到文件/include/common.inc.php的139行&#xf…

linux 下zip文件的压缩和解压

压缩&#xff1a;zip 解压&#xff1a;unzip tar.gz 解压&#xff1a;tar -xvfz filename转载于:https://www.cnblogs.com/bjdxy/archive/2012/11/26/2789170.html

oracle中xml如何存储过程,oracle存储过程生成xml文件

oracle存储过程生成xml文件CREATE OR REPLACE PROCEDURE Pro_OracleToXML(personid varchar2,name varchar2,address varchar2,tel varchar2,ip varchar2,email varchar2)ASisql varchar2(200);--创建临时表dptable varchar2(100);--删除临时表i_insert varchar2(200);--将数据…