演算法題 樹相關

2021-10-03 20:10:39 字數 1000 閱讀 9174

題目:給定乙個二叉樹,找出其最大深度。

二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。

方法1:遞迴

class

solution

:def

maxdepth

(self, root)

:"""

:type root: treenode

:rtype: int

"""if root is

none

:return

0else

: left_height = self.maxdepth(root.left)

right_height = self.maxdepth(root.right)

return

max(left_height, right_height)

+1

題目:將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。

本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。

方法1:遞迴

def

is_symmetric

(root)

:return is_mirror(root, root)

defis_mirror

(t1, t2)

:if t1 ==

none

and t2 ==

none

:return

true

if t1 ==

none

or t2 ==

none

:return

false

return t1.val ==t2.val \

and is_mirror(t1.right, t2.left) \

and is_mirror(t1.left, t2.right)

方法2:迭代

二叉樹相關演算法設計題

二叉樹按層列印,同時輸出格式滿足 列印完一層要換行,每一行的行首標明 level i i 1,2,3.層 如 1 2 3 4 5 輸出列印為 level1 1 level2 2 3 level3 4 5 思路 1.先把二叉樹的層次遍歷搞懂 用佇列實現,原理是 根節點入隊,然後在佇列不空的時候迴圈,迴...

演算法題 鍊錶相關

題目 請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾 節點,你將只被給定要求被刪除的節點。解析 由於只輸入了需要刪除的節點node,因此無法獲取刪除節點node的前乙個節點pre,從而也就無法將前乙個節點pre指向刪除節點的下乙個節點nex 既然無法通過修改指標完成,那麼肯定要修改鍊錶節點的值...

樹的相關基礎演算法

樹的相關基礎演算法,先序 中序 後序遞迴與非遞迴,層次遍歷,建立二叉搜尋樹。include include include using namespace std typedef struct tree bstree bstree newbstree int n void createtree bs...