面試題39 二叉樹的深度

2021-09-25 07:53:56 字數 746 閱讀 3276

題目一:輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點一次經過的節點形成樹的一條路徑,最長路徑的長度為樹的深度。

二叉樹的節點定義如下:

struct

treenode

;

例如,下圖中二叉樹的深度為4.

題目二:輸入一棵二叉樹的根節點,判斷該樹是不是平衡二叉樹。

解法一:需要重複遍歷節點多次,簡單但不足以打動面試官

利用題目一依次計算計算每個節點的深度。

1

bool isbalanced(treenode*root)

解法二:一邊遍歷一邊記錄節點深度

1

bool isbalanced(treenode* root, int &depth)28

intleft, right;

9if (isbalanced(root->left, left) && isbalanced(root->right,right))

1016}17

return

false;18

}19bool isbalanced(treenode*root)

劍指Offer 面試題39 二叉樹的深度

二叉樹的深度 輸入一顆二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 也節點 形成樹的一條路徑,最長路徑的長度為樹的深度 12 3 4 5 6 7圖中二叉樹的深度為4,從根節點1開始經過結點2和5,最終到達葉結點7 輸入 第一行輸入有n,n表示結點數,結點號從1到n。根結點為1。...

劍指Offer 面試題39 二叉樹的深度

題目描述 輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉子點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。題目分析 如果一棵樹只有乙個結點,它的深度為1。如果根結點只有左子樹而沒有右子樹,那麼樹的深度應該是其左子樹的深度加1,同樣如果根結點只有右子樹而沒有左子樹,那麼...

(劍指Offer)面試題39 二叉樹的深度

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。結點的定義如下 struct treenode 對於樹的問題基本都可以通過遞迴來解決。一棵二叉樹的深度,等於它的左子樹深度和右子樹深度的較大者 1 遞迴的結束條件就是 該結點為空,...