python实现检查平衡性算法
python实现检查平衡性算法
采用递归方法实现
第一种采用两次递归法,时间复杂度较高,效率低
代码如下
class Solution:def isBalanced(self, root: TreeNode) -> bool:if not root:return Truedef get(root):if not root:return 0a=get(root.left)b=get(root.right)return max(a,b)+1if abs(get(root.left)-get(root.right))>1:return Falsereturn self.isBalanced(root.left)&self.isBalanced(root.right)
第二种方法只递归自己定义的函数
代码如下
class Solution:def isBalanced(self, root: TreeNode) -> bool:def get(root):if not root:return 0a=get(root.left)b=get(root.right)if a=='False' or b=='False':return 'False'if abs(a-b)>1:return 'False'return max(a,b)+1ans=get(root)if ans=='False':return Falseelse:return True
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
