LeetCode(剑指 Offer)- 55 - II. 平衡二叉树

简介: LeetCode(剑指 Offer)- 55 - II. 平衡二叉树

题目链接:点击打开链接

题目大意:

解题思路:

相关企业

  • 字节跳动
  • Facebook
  • 谷歌(Google)
  • 苹果(Apple)
  • 亚马逊(Amazon)
  • 微软(Microsoft)
  • 美团
  • 猿辅导
  • SAP 思爱普
  • 阿里巴巴
  • 抖音

AC 代码

  • Java
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/// 解决方案(1)classSolution {
booleanres=true;
publicbooleanisBalanced(TreeNoderoot) {
dfs(root);
returnres;
    }
intdfs(TreeNodenode) {
if (node==null) {
return0;
        }
intl=dfs(node.left) +1;
intr=dfs(node.right) +1;
if (Math.abs(l-r) >1) {
res=false;
        }
returnMath.max(l, r);
    }
}
// 解决方案(2)classSolution {
publicbooleanisBalanced(TreeNoderoot) {
returnrecur(root) !=-1;
    }
privateintrecur(TreeNoderoot) {
if (root==null) return0;
intleft=recur(root.left);
if(left==-1) return-1;
intright=recur(root.right);
if(right==-1) return-1;
returnMath.abs(left-right) <2?Math.max(left, right) +1 : -1;
    }
}
// 解决方案(3)classSolution {
publicbooleanisBalanced(TreeNoderoot) {
if (root==null) returntrue;
returnMath.abs(depth(root.left) -depth(root.right)) <=1&&isBalanced(root.left) &&isBalanced(root.right);
    }
privateintdepth(TreeNoderoot) {
if (root==null) return0;
returnMath.max(depth(root.left), depth(root.right)) +1;
    }
}
  • C++
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/// 解决方案(1)classSolution {
public:
boolisBalanced(TreeNode*root) {
returnrecur(root) !=-1;
    }
private:
intrecur(TreeNode*root) {
if (root==nullptr) return0;
intleft=recur(root->left);
if(left==-1) return-1;
intright=recur(root->right);
if(right==-1) return-1;
returnabs(left-right) <2?max(left, right) +1 : -1;
    }
};
// 解决方案(2)classSolution {
public:
boolisBalanced(TreeNode*root) {
if (root==nullptr) returntrue;
returnabs(depth(root->left) -depth(root->right)) <=1&&isBalanced(root->left) &&isBalanced(root->right);
    }
private:
intdepth(TreeNode*root) {
if (root==nullptr) return0;
returnmax(depth(root->left), depth(root->right)) +1;
    }
};
目录
相关文章
|
3天前
leetcode代码记录(平衡二叉树
leetcode代码记录(平衡二叉树
9 0
|
24天前
|
算法 DataX
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
二叉树(中)+Leetcode每日一题——“数据结构与算法”“剑指Offer55-I. 二叉树的深度”“100.相同的树”“965.单值二叉树”
|
25天前
|
算法 定位技术
【leetcode】剑指 Offer II 105. 岛屿的最大面积-【深度优先DFS】
【leetcode】剑指 Offer II 105. 岛屿的最大面积-【深度优先DFS】
17 0
LeetCode | 110. 平衡二叉树
LeetCode | 110. 平衡二叉树
|
4月前
|
Go
golang力扣leetcode 剑指Offer II 114. 外星文字典
golang力扣leetcode 剑指Offer II 114. 外星文字典
21 0
|
4月前
|
Java C++ Python
leetcode-110:平衡二叉树
leetcode-110:平衡二叉树
25 0
|
5月前
「LeetCode」剑指 Offer 40. 最小的k个数
「LeetCode」剑指 Offer 40. 最小的k个数
28 0
LeetCode刷题Day14——二叉树(完全二叉树、平衡二叉树、二叉树路径、左叶子之和)
一、完全二叉树的节点个数 题目链接:222. 完全二叉树的节点个数
|
5月前
leetcode 剑指 Offer 32 - III. 从上到下打印二叉树 III
leetcode 剑指 Offer 32 - III. 从上到下打印二叉树 III
24 0
|
5月前
leetcode 剑指 Offer 32 - II. 从上到下打印二叉树 II
leetcode 剑指 Offer 32 - II. 从上到下打印二叉树 II
22 0

热门文章

最新文章