25.二叉树的最大深度
104. 二叉树的最大深度
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7]
,
3 / \ 9 20 / \ 15 7
返回它的最大深度 3 。
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode() {} 8 * TreeNode(int val) { this.val = val; } 9 * TreeNode(int val, TreeNode left, TreeNode right) { 10 * this.val = val; 11 * this.left = left; 12 * this.right = right; 13 * } 14 * } 15 */ 16 class Solution { 17 public int maxDepth(TreeNode root) { 18 // 终止条件 19 if (root == null) { 20 return 0; 21 } else { 22 // 每一层将其左右子树加入递归 23 int leftHeight = maxDepth(root.left); 24 int rightHeight = maxDepth(root.right); 25 // 返回值为该层层数 26 return Math.max(leftHeight, rightHeight) + 1; 27 } 28 } 29 }
递归三连问:
1.终止条件
2.本次递归干了什么
3.返回值是什么