LeetCode 110 平衡二叉樹

2021-10-09 06:44:44 字數 1073 閱讀 7463

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

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

乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。
樹的高度:從結點x向下到某個葉結點最長簡單路徑中邊的條數

思路一:從下倒上遍歷,先判斷當前節點的左右子節點是否平衡。如果不平衡返回-1,平衡返回相應高度,當存在不平衡的子樹時,整個樹也就不平衡了

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

else}/*

從下向上遍歷,先判斷當前節點的子節點,再判斷當前節點

*/public

intheight

(treenode node)

int leftheight =

height

(node.left)

;int rightheight =

height

(node.right)

;//當找到高度差大於1的結點或已經存在這樣的結點時,返回-1

if(leftheight ==-1

|| rightheight ==-1

|| math.

abs(leftheight - rightheight)

>1)

else

}}

思路二:從上向下遍歷,每到乙個節點計算它的左右節點高度,判斷是否平衡,這個演算法的時間複雜度是比上面思路大的,因為每個節點都會重複計算下面節點的高度

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

else

}public

intheight

(treenode node)

else

}}

leetcode 110 平衡二叉樹 平衡二叉樹

leetcode 110 平衡二叉樹 平衡二叉樹要求所有節點的左右子樹的高度差小於1,因此,只需在遍歷的時候返回其左右子樹的深度。definition for a binary tree node.public class treenode treenode int val treenode int...

LeetCode110 平衡二叉樹

給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回true。示例 2 給定二叉樹 1,2,2,3,3,null,nul...

LeetCode 110 平衡二叉樹

給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回true。示例 2 給定二叉樹 1,2,2,3,3,null,nul...