日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

求二叉树高度_LeetCode刷题——第二十五天(平衡二叉树)

發布時間:2024/7/23 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 求二叉树高度_LeetCode刷题——第二十五天(平衡二叉树) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這段時間跟二叉樹杠上了,接下來還有許多二叉樹的題目,雖然已經做了不少了,大多題目都涉及到了遞歸,也挺好,剛好有機會練習一下遞歸,但是遇到新的題目還是有點力不從心,還需要看參考答案,真希望有一天像湯神一樣:這道題我拿到手上就會做!

第二十五天——第二十五題(平衡二叉樹)

看題目!

給定一個二叉樹,判斷它是否是高度平衡的二叉樹。

本題中,一棵高度平衡二叉樹定義為:

一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。

示例 1:

給定二叉樹[3,9,20,null,null,15,7]

3/ 9 20/ 15 7

返回true。

示例 2:

給定二叉樹[1,2,2,3,3,null,null,4,4]

1/ 2 2/ 3 3/ 4 4

返回 false

python解答之一:

# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = Noneclass Solution(object):def isBalanced(self, root):""":type root: TreeNode:rtype: bool"""if not root:return Truereturn abs(self.height(root.right)-self.height(root.left))<2 and self.isBalanced(root.left) and self.isBalanced(root.right)# 求高度def height(self, node):if not node:return 0return 1+max(self.height(node.right),self.height(node.left))

代碼解釋:

1.首先判斷根節點為空時的情況(這一步已經習以為常了)

2.不為空則根據輸入是否滿足return后的條件來決定返回True或者False。

3.return后的條件為:

條件1:左右兩側的高度差小于2(也就是說高度差是1或者0都是可以的)

條件2:利用遞歸,去判斷根節點左右兩邊的葉子結點他們的子節點是否滿足條件1,以此往樹下走,直到走到頭。

4.條件1中用到了求二叉樹高度的函數,所以在最后另外在定義一下height函數即可。

有時候風扇比空調更適合你喲~

總結

以上是生活随笔為你收集整理的求二叉树高度_LeetCode刷题——第二十五天(平衡二叉树)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。