原題:
給定乙個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明: 葉子節點是指沒有子節點的節點。
示例:給定二叉樹 [3,9,20,null,null,15,7],
3
/
9 20
/ 15 7
返回它的最大深度 3 。
在真實的面試中遇到過這道題?
分析:通過遞迴的方式,採用深度優先的方式求最大深度
**:
class treenode:
def __init__(self, x):
self.val = x
self.left = none
self.right = none
def maxdepth(self, root: treenode) -> int:
if root==none:
return 0
left = maxdepth(self,root.left)
right = maxdepth(self,root.right)
return max(left,right)+1
self =
tree =treenode(3)
tree.left=treenode(9)
tree.right = treenode(20)
tree.right.left = treenode(15)
tree.right.right = treenode(7)
print(maxdepth(self,tree))
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 二叉樹 二叉樹的層次遍歷
給定乙個二叉樹,返回其按層次遍歷的節點值。即逐層地,從左到右訪問所有節點 例如 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回其層次遍歷結果 3 9,20 15,7 方法一 遞迴 思路 比較訪問節點所在層次level和當前最高層次len levels 判定是否需...