主页 > 人工智能  > 

2025年-G11-Lc85-110.平衡二叉树-java版

2025年-G11-Lc85-110.平衡二叉树-java版

1.题目描述

2.思路 思路1: 思路2: 二叉树中求高度的常见模板要记住,树节点类型,传入节点node 平衡二叉树和不平衡二叉树举例: 思路3: 高度定义是从根节点到叶子节点的高度,但是计算的时候从叶子节点开始算(0层),所以要+1 思路4:从根节点开始递归高度的时候,用root=-1来代表不平衡的子树。root=0只能说明是空树,。 height(TreeNode node) 方法的参数 node 是一个 TreeNode 类型的引用,指向某个具体的 TreeNode 对象。在方法内部,您可以通过该引用访问和修改这个对象的属性。 在 Java 中,当方法的参数是对象类型时,传递的是对象的引用。这里的“对象”指的是内存中实际存储的数据实体,例如定义的 TreeNode 实例。而“引用”是指向该对象的内存地址的变量。将对象作为参数传递给方法时,方法接收到的是该对象引用的副本,即指向同一对象的内存地址。因此,在方法内部对该对象的修改会影响到原始对象。

3.java代码

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { public boolean isBalanced(TreeNode root) { return height(root)!=-1; //用总高度-1代表不是不平衡树;也就是高度差是0,1..... 都可以返回true } private int height(TreeNode node) {//方法的参数node是对对象的引用 if(node==null) { return 0;//如果节点为空代表空子树,高度为0,也可以是不平衡树 } int leftheight=height(node.left); int rightheight=height(node.right); //1.如果左子树不平衡或者右子树不平衡,直接返回-1;还有一种情况是违反定义,就是左右子树高度差大于1 if(leftheight==-1||rightheight==-1||Math.abs(leftheight-rightheight)>1) { return -1; } // 2.否则,返回当前节点的高度 return Math.max(leftheight,rightheight)+1; } }
标签:

2025年-G11-Lc85-110.平衡二叉树-java版由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“2025年-G11-Lc85-110.平衡二叉树-java版