首页 > 编程知识 正文

平衡二叉树深度怎么算,平衡二叉树的特点

时间:2023-05-04 15:31:47 阅读:166782 作者:46

二叉树的深度可以使用BFS反复方式分层得到,以下叙述递归得到

//二叉树的深度let deep=(root )={ //递归到空节点,定义计算其道路终点的函数。 //如果该节点为空,则说明本身的深度为0,也是递归出口if的return 0 //如果该节点不为空,则表示是进一步的左节点,右节点继续向下搜索//从左节点得到的左子树的深度和从右节点得到的右子树的深度为最大值的子树的深度//加1,表示以该节点为根节点的深度,再向上返回//继续计算的方式,空节点为0 假设一个节点的左右子树都得到0,那么自身的1 //返回的深度是1returnmath.max(deep(root.left ),deep ) root.right )1}平衡二叉树,任意节点

那么,首先需要对任意节点进行递归,然后调用deep取该节点左右部分树的深度差,返回是否11

如果let isBalance=(root )={ //节点为空,则平衡//这也是递归的出口。 必须递归到空节点,因为必须确定对于任何节点是否平衡。if(root ) return true //单层逻辑是需要确定该节点左右子树之间的深度差是否为=1 //递归的逻辑如果任何一个为falsse,则结果将是false return math.ABS (deep (root.left )-deep (root.right ) )=1is balance (root.left ) is

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。