题目描述:
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
来源:力扣
代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int maxDepth(TreeNode root) {
if(root ==null) {//根节点为null,我认为它深度为0
return 0;
}
//左子树和右子树为null,说明是叶子节点
if(root.left==null&&root.right==null) {
return 1;
}
int leftDepth = maxDepth(root.left);
int rightDepth = maxDepth(root.right);
//二叉树深度:根节点+左子树深度和右子树深度中大的一个
return 1+ (leftDepth>rightDepth ? leftDepth:rightDepth);
}
}
运行结果: