二叉数的一些练习
作者:互联网
110. 平衡二叉树
给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:
一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。
- 代码1:(缺点:时间复杂度高O(n^2))
思路:isBalanced从上往下走,对每个节点都要求高度(求高度又要递归走一遍)
class Solution {
public int getHeight(TreeNode root){
//判空
if(root == null) return 0;
//不为空:左树的高度+右树的高度 + 1(根)
return Math.max(getHeight(root.left),getHeight(root.right))+1;
}
public boolean isBalanced(TreeNode root) {
//判空
if(root == null) return true;
//左子树高度 右子树高度 之差 <= 1 -----》 才能继续再判断这个节点下的左右子树是否平衡
if(Math.abs(getHeight(root.left)-getHeight(root.right))<=1){
return isBalanced(root.left)&&isBalanced(root.right);
}else {
return false;
}
}
}
- 使时间复杂度为O(n)
思路:从下往上求高度
//时间复杂度O(n)
class Solution {
public int getHeight(TreeNode root){
if(root == null) return 0;
int leftHeight = getHeight(root.left);
int rightHeight = getHeight(root.right);
// if(leftHeight >= 0 && rightHeight >= 0 && //当根节点两边都为空时,会返回-1,所以添加限定条件
// Math.abs(leftHeight-rightHeight) <= 1) {
// return Math.max(leftHeight,rightHeight) + 1;
// }else {
// return -1;
// }
if(leftHeight == -1 || rightHeight == -1 || //当根节点两边都为空时,会返回-1
Math.abs(leftHeight-rightHeight) > 1) {
return -1;
}else {
return Math.max(leftHeight,rightHeight) + 1;
}
}
public boolean isBalanced(TreeNode root) {
if(getHeight(root) >= 0) {
return true;
}
return false;
}
}
101. 对称二叉树
给定一个二叉树,检查它是否是镜像对称的。
//判断左子树和右子树对称
//左子树的左 == 右子树的右 && 左子树的右==右子树的左
class Solution {
public boolean isSymmetricChild(TreeNode leftTree,TreeNode rightTree){
//一个为空一个不为空的情况
if((leftTree==null && rightTree!=null )||(leftTree!=null && rightTree==null)){
return false;
}
//两个都为空
if(leftTree==null && rightTree==null) return true;
//两个都不为空
//(1)值是否相等----不等的情况
if(leftTree.val != rightTree.val){
return false;
}
//(1)值是否相等----相等的情况
return (isSymmetricChild(leftTree.left,rightTree.right))&&
(isSymmetricChild(leftTree.right,rightTree.left));
}
public boolean isSymmetric(TreeNode root) {
//1.判空
if(root == null) return true;
//2.判断左子树和右子树对称
return isSymmetricChild(root.left,root.right);
}
}
标签:rightTree,return,练习,二叉,二叉树,&&,一些,null,root 来源: https://blog.csdn.net/qq_45915957/article/details/113272074