原题: https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/submissions/
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
返回它的最大深度 3 。
package com.leetcode.test.tree; /** * 二叉树的最大深度 */ public class Solution3 { public static void main(String[] args) { TreeNode a1 = new TreeNode(3); TreeNode a2 = new TreeNode(9); TreeNode a3 = new TreeNode(20); TreeNode a4 = new TreeNode(15); TreeNode a5 = new TreeNode(7); a1.left = a2; a1.right = a3; a3.left = a4; a3.right = a5; System.out.println(maxDepth(a1)); } //二叉树的最大深度等于 1+ max(左子树的最大深度, 右子树的最大深度) public static int maxDepth(TreeNode root) { if (root == null){ return 0; } return 1 + Math.max(maxDepth(root.left),maxDepth(root.right)); } }