题目
思路
二叉树大多用递归来实现,本题如果知道左子树的深度和右子树的深度,那么整个二叉树的深度就为max(左子树,右子树) + 1;该方法也叫做深度优先搜索
代码
package hot_100;public class MaxDepth {public static void main(String[] args) {//构造简单的二叉树TreeNode root = new TreeNode(3);root.left = new TreeNode(9);root.right = new TreeNode(20);root.right.left = new TreeNode(33);System.out.println(dfs(root));}public static int dfs(TreeNode root){if (root == null){return 0;}int left = dfs(root.left);int right = dfs(root.right);return Math.max(left, right) + 1;}}class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) {this.val = val;}TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}
}
只构造了一个简单的二叉树进行测试
TODO
传入数组[3,9,20,null,null,15,7]的形式
,返回一个二叉树。