給定乙個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明: 葉子節點是指沒有子節點的節點。
示例:給定二叉樹 [3,9,20,null,null,15,7],
3/ \
9 20
/ \
15 7
返回它的最大深度 3 。
1>源**
# definition for a binary tree node.
# class treenode:
# def __init__(self, val=0, left=none, right=none):
# self.val = val
# self.left = left
# self.right = right
class
solution
:def
maxdepth
(self, root: treenode)
->
int:
depth =0if
(root ==
none):
return
0 depth +=
1 left_depth = self.maxdepth(root.left)
right_depth = self.maxdepth(root.right)
depth +=
max(left_depth, right_depth)
return depth
2>演算法介紹
這道題思路很明顯,利用深度優先遍歷即可。別忘了深度優先遍歷的遞迴演算法:訪問當前節點(在本題中就是深度+1),遞迴訪問左子樹,遞迴訪問右子樹。本題需要我們找出最大深度,我們只需要將左右子樹的最大深度找出,並+1即可。
leetcode 0104 二叉樹的最大深度
題目位址 1.遞迴 時間複雜度o n 空間複雜度o h 空間複雜度主要用於遞迴棧的深度h 本地使用遞迴的方式解題非常簡單,首先遞迴終止的條件就是遞迴到當前節點為null的情況。var maxdepth function root return math.max maxdepth root.left ...
leetcode 二叉樹 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...
LeetCode (二叉樹)反轉二叉樹
遞迴交換每乙個節點的左右子樹,重點在於訪問每乙個節點,然後交換左右子樹 definition for a binary tree node.struct treenode struct treenode inverttree struct treenode root 由於至少要講每乙個節點都訪問一次...