題目描述
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度
算法:對于二叉樹來說,如果一個根節點沒有左右子樹結點,則二叉樹深度為1,只有左子樹,則為左子樹深度+1, 反之亦然,對于既有左子樹,又有右子樹的情況,取左右子樹的深度的較大值加一。
代碼如下:
public int TreeDepth(TreeNode root) { if (root == null){ return 0; } if (root.left == null && root.right == null){ return 1; } int left = TreeDepth(root.left); int right = TreeDepth(root.right); return (left > right) ? (left + 1) : (right + 1); }新聞熱點
疑難解答