C/C++教程

LeetCode110-平衡二叉树

本文主要是介绍LeetCode110-平衡二叉树,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

原题链接:https://leetcode-cn.com/problems/balanced-binary-tree/,https://leetcode-cn.com/problems/ping-heng-er-cha-shu-lcof/

解题思路:递归。左右子树的高度差不大于1,且左右子树都是平衡二叉树

 1 # Definition for a binary tree node.
 2 # class TreeNode:
 3 #     def __init__(self, val=0, left=None, right=None):
 4 #         self.val = val
 5 #         self.left = left
 6 #         self.right = right
 7 class Solution:
 8     def isBalanced(self, root: TreeNode) -> bool:
 9         def height(root: TreeNode) -> int:
10             if not root:
11                 return 0
12             return max(height(root.left), height(root.right)) + 1
13 
14         if not root:
15             return True
16         return abs(height(root.left) - height(root.right)) <= 1 and self.isBalanced(root.left) and self.isBalanced(root.right)

 

这篇关于LeetCode110-平衡二叉树的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!