您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法
平衡二叉树(图文)
第十三双眼睛2023-11-27【数据结构与算法】人已围观
简介平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。
思路:要确定该二叉树是平衡二叉树,需要该二叉树的左子树和右子树的深度差小于等于1,并且,递归的每个节点的左子树和右子树的深度差不超过1。代码如下
public static boolean method1(TreeNode root) { if (root == null) { return true; } return Math.abs(test(root.left) - test(root.right)) > 1 && method1(root.left) && method1(root.right); } public static int test(TreeNode node) { if (node == null) { return 0; } return Math.max(test(node.left), test(node.right)) + 1; } |
Tags:
很赞哦! ()
下一篇:二叉树的最小深度(图文)
相关文章
随机图文
-
移除元素(图文)
移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 -
弗洛伊德算法(图文)
弗洛伊德算法 -
动态规划算法解决背包问题(图文)
动态规划算法解决背包问题 -
用队列实现栈(图文)
用队列实现栈 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素。 int top() 返回栈顶元素。 boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。