104.二叉树的最大深度
描述
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
实例
给定二叉树 [3,9,20,null,null,15,7]
,
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
节点描述
// Definition for a binary tree node.
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
题解
就是遍历树求深度的基本操作
public static int maxDepth(TreeNode root) {
if (root == null)
return 0;
int[] max = new int[1];
getDeep(root,0,max);
return max[0];
}
public static void getDeep(TreeNode nowRoot,int nowDeep,int[] maxDeep){
if (nowRoot == null)
return;
TreeNode leftNode = nowRoot.left;
TreeNode rightNode = nowRoot.right;
if (nowDeep+1 > maxDeep[0])
maxDeep[0] = nowDeep+1;
getDeep(leftNode,nowDeep+1,maxDeep);
getDeep(rightNode,nowDeep+1,maxDeep);
}