題目:給定乙個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
方法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...