二叉树的深度

题目

牛客网

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

解题思路

  1. 深度优先遍历
  1. public int TreeDepth(TreeNode root) {
  2. int[] max = {0};
  3. depth(root, max, 1);
  4. return max[0];
  5. }
  6. private void depth(TreeNode root, int[] max, int curDepth) {
  7. if (root == null) return;
  8. if (curDepth > max[0]) max[0] = curDepth;
  9. depth(root.left, max, curDepth + 1);
  10. depth(root.right, max, curDepth + 1);
  11. }