題目一:輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點一次經過的節點形成樹的一條路徑,最長路徑的長度為樹的深度。
二叉樹的節點定義如下:
struct例如,下圖中二叉樹的深度為4.treenode
;
題目二:輸入一棵二叉樹的根節點,判斷該樹是不是平衡二叉樹。
解法一:需要重複遍歷節點多次,簡單但不足以打動面試官
利用題目一依次計算計算每個節點的深度。
1解法二:一邊遍歷一邊記錄節點深度bool isbalanced(treenode*root)
1bool 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 遞迴的結束條件就是 該結點為空,...