问题描述:
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
代码实现,拿去即可运行
package com.onlyqi.upup01.leetcode; public class Test05 { public static void main(String[] args) { TreeNode treeNode1 = new TreeNode(3); TreeNode treeNode2 = new TreeNode(9); TreeNode treeNode3 = new TreeNode(20); TreeNode treeNode4 = new TreeNode(15); TreeNode treeNode5 = new TreeNode(7); treeNode3.setLeft(treeNode4); treeNode3.setRight(treeNode5); treeNode1.setLeft(treeNode2); treeNode1.setRight(treeNode3); System.out.println("****************only-qi***********"+maxDepth(treeNode1)); } public static int maxDepth(TreeNode root) { if (root == null) { return 0; } int leftHeight = maxDepth(root.getLeft()); int rightHeight = maxDepth(root.getRight()); return java.lang.Math.max(leftHeight, rightHeight) + 1; } }
@Data @AllArgsConstructor @NoArgsConstructor public class TreeNode { private Integer val; private TreeNode left; private TreeNode right; public TreeNode(Integer val) { this.val=val; } }
运行结果:
另外,可以看一下我另外一篇N叉树最大深度比较着学
我要刷100道算法题,第100道