1. 二叉树的深度

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

  1. 例如:
  2. 给定二叉树 [3,9,20,null,null,15,7],
  3. 3
  4. / \
  5. 9 20
  6. / \
  7. 15 7
  8. 返回它的最大深度 3

思路:

  • 递归探索
  • 记录当层的层数,进行递归传递,然后分别获取左右探索得到的值,进行比较大小,返回更大的值。

    class Solution {
      public int maxDepth(TreeNode root) {
          int count = 1;
          if(root!=null){
              return operation(count,root);
          }
          return 0;
      }
    
      // 递归探索
      private int operation(int count,TreeNode node){
          int num1 = count;
          int num2 = count;
          if(node.left!=null){
              num1 = operation(count+1,node.left);
          }
          if(node.right!=null){
              num2 = operation(count+1,node.right);
          }
          return Math.max(num1,num2);
      }
    }