劍指Offer 55 二叉樹的深度

2021-09-02 19:55:19 字數 1520 閱讀 6250

輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

樣例輸入:二叉樹[8, 12, 2, null, null, 6, 4, null, null, null, null]

輸出:3

# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:def

treedepth

(self, root)

:"""

:type root: treenode

:rtype: int

"""self.depth =0if

not root:

return

0 self.iterate(root,0)

return self.depth

defiterate

(self, root, d):if

not root:

return

ifnot root.left and

not root.right:

self.depth =

max(self.depth, d +1)

return

if root.left:

self.iterate(root.left, d +1)

if root.right:

self.iterate(root.right, d +

1)

劍指offer上給出一種更簡潔的解法:

# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:def

treedepth

(self, root)

:"""

:type root: treenode

:rtype: int

"""ifnot root:

return

0 left = self.treedepth(root.left)

right = self.treedepth(root.right)

return

max(left +

1, right +

1)

劍指offer55二叉樹的深度

使用bfs 與 dfs 兩種方法進行計算 dfs 迭代思想,一直走到底,尋找能走的最長路線。definition for a binary tree node.struct treenode class solution c definition for a binary tree node.str...

劍指Offer55 二叉樹的深度 easy

試題鏈結 題目描述 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如輸入 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最大深度 3 資料範圍 節點總數 10000解題思路 d...

劍指offer 55 二叉樹的深度 平衡二叉樹

struct treenode class solution 判斷是否是平衡二叉樹,需要乙個bool和乙個高度 如果左右子樹不是平衡二叉樹則直接返回false 如果左右子樹是平衡二叉樹,那就判斷當前是否是平衡二叉樹 需要左右子樹的高度差絕對值小於等於1,則是平衡二叉樹,否則不是 class solu...