python 判斷平衡二叉樹

2021-10-12 18:23:09 字數 2155 閱讀 1751

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

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

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

# definition for a binary tree node.

# class treenode(object):

# def __init__(self, val=0, left=none, right=none):

# self.val = val

# self.left = left

# self.right = right

class

solution

(object):

defisbalanced

(self, root)

:#1.找終止條件。 什麼情況下遞迴應該終止?自然是子樹為空的時候,空樹自然是平衡二叉樹了。

ifnot root:

return

true

#2.應返回什麼資訊:這裡我們返回的資訊應該是既包含子樹的深度的int型別的值

#又包含子樹是否是平衡二叉樹的boolean型別的值。

return

abs(self.depth(root.left)

- self.depth(root.right)

)<=

1and \

self.isbalanced(root.left)

and self.isbalanced(root.right)

#3本級遞迴應該做什麼。 知道了第二步的返回值後,這一步就很簡單了

defdepth

(self, root)

:# 1.找終止條件。到達葉子節點。

ifnot root:

return

0# 2.返回值。返回樹的深度,左右子樹中最大長度。

return

max(self.depth(root.left)

, self.depth(root.right))+

1

class

solution

:def

isbalanced_solution

(self, proot)

:# write code here

if proot is

none

:return

true

left = self.getdeepth(proot.left)

right = self.getdeepth(proot.right)

ifabs

(right - left)

>1:

return

false

return self.isbalanced_solution(proot.right)

and self.isbalanced_solution(proot.left)

defgetdeepth

(self,root)

:if root is

none

:return

0 nright = self.getdeepth(root.right)+1

nleft = self.getdeepth(root.left)+1

return

max(nright,nleft)

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

class

solution

:def

treedepth

(self, proot)

:# 1.確定遞迴結束條件,遍歷到葉子節點

ifnot proot:

return

0# 2.遞迴返回值,此處即為每次遍歷節點深度

left_depth = self.treedepth(proot.left)+1

right_depth = self.treedepth(proot.right)+1

return

max(left_depth, right_depth)

判斷平衡二叉樹

演算法 樹 平衡二叉樹 平衡二叉樹的概念 左右節點的樹高之差小於1。1.計算節點的高。通過遞迴,求出左右子樹的高度,當前節點的高度,最大的那乙個 1。int getheight treenode root 2.通過遞迴的方法計算左子樹和右子樹的樹高之差是否有小於1的,有就直接返回false.publ...

判斷平衡二叉樹

package com.jsp.tree 判斷是否是平衡二叉樹 author jiangshipan 任何乙個節點 左子樹和右子數高度差小於1 以每乙個節點為頭的樹都是平衡的,則這個樹平衡 可能 1.左樹不平 2.右樹不平 3.左或右高 整棵樹 public class isbalancedtree...

判斷平衡二叉樹

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。最直接的做法,遍歷每個節點,借助乙個獲取樹深度的遞迴函式,根據該節點的左右子樹高度差判斷是否平衡,然後遞迴地對左右子樹進行判斷 pubic class solution private intmaxdepth treenode root 這種做法有很明顯...