LeetCode 0104 二叉樹的最大深度

2021-10-18 10:47:16 字數 1009 閱讀 6477

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

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

說明: 葉子節點是指沒有子節點的節點。

示例:給定二叉樹 [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 由於至少要講每乙個節點都訪問一次...