1. 题目
剑指 Offer 55 - I. 二叉树的深度
2. 描述
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
例如:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
提示:
节点总数 <= 10000
3. 实现方法
3.1 方法 1
3.1.1 思路
先判断根节点是否为 null,是则深度为 0;
然后遍历左右子树中较大的深度,然后再加上 1 (根节点)即为二叉树的深度;
由于需要遍历所有节点,所以时间复杂度为 O ( n ) O(n)O(n);
3.1.2 实现
public int maxDepth(TreeNode root) { if (root == null) { return 0; } return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; }