Leetcode204 二叉樹的最大深度

2021-09-10 09:35:25 字數 1798 閱讀 4204

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

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

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

示例:給定二叉樹 [3,9,20,null,null,15,7],

3

/ \9 20

/ \

15 7

返回它的最大深度 3 。

對二叉樹進行層序遍歷,記錄遍歷過的層數。具體操作為,使用佇列,根節點入隊,隨後記錄佇列長度,並進入for迴圈。這樣可保證每次只遍歷一層,在遍歷時,將每個節點彈出佇列,隨後將彈出節點的非空子節點入隊。每一次for迴圈結束,代表遍歷一層。當佇列長度為0時,結束遍歷。

目前執行速度最快的程式如下:

# definition for a binary tree node.

# class treenode(object):

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

(object):

defmaxdepth

(self, root)

:"""

:type root: treenode

:rtype: int

"""ifnot root:

return

0return1+

max(self.maxdepth(root.left)

,self.maxdepth(root.right)

)

採用遞迴的思路,去遞迴遍歷節點的左右子樹,每進一層,遞迴加1。

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 由於至少要講每乙個節點都訪問一次...

leetcode 204 質數的個數

判斷n以內的所有的質數的個數,直接的想法是判斷每個數是不是質數。然而n以內的數是由質數和合數組成的,合數可以由質數生成,質數的倍數就是乙個合數。判斷乙個數是否為質數,就是判斷2 根下n的每個整數是否可以被n整除,若都不能被整除,則為質數,否則為合數。換個角度,即2 根下n的每個整數的倍數都是合數,通...