关于leetcode 110
来源:7-2 一个简单的二叉树问题引发的血案 Invert Binary Tree
IT_god
2020-10-15
class Solution {
public boolean isBalanced(TreeNode root) {
return height(root) >= 0;
}
public int height(TreeNode root) {
if (root == null) {
return 0;
}
int leftHeight = height(root.left);
int rightHeight = height(root.right);
if (leftHeight == -1 || rightHeight == -1 || Math.abs(leftHeight - rightHeight) > 1) {
return -1;
} else {
return Math.max(leftHeight, rightHeight) + 1;
}
}
}
//代码二
class Solution {
public boolean isBalanced(TreeNode root) {
return height(root) >= 0;
}
private int height(TreeNode root){
if(root == null) return 0;
int left = height(root.left);
int right = height(root.right);
return (left == -1 || right == -1 || Math.abs(height(root.left) - height(root.right)) > 1) ? -1 : Math.max(left, right) + 1;
}
}
老师,
代码一 提交给Leetcode运行时间1Ms. 代码二 的则是26Ms.
为什么会有这种现象出现呀? 我找不出有啥不同呢。
写回答
1回答
-
这是 lc 评测环境的问题,这种代码的性能结果差异不是稳定的,在不同环境下不具有可复现性。我不建议在这种同样的逻辑不同的语句实现上细抠,意义不大。
继续加油!:)
012020-10-15
相似问题