二叉树的深度
二叉树的深度是指从根节点到叶子节点的最长路径上的节点数。
一、最大深度
104. 二叉树的最大深度 - 力扣(LeetCode)
最大深度是指从根节点到最远叶子节点的最长路径上的节点数。
//递归法
/*** Definition for a binary tree node.* public 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;* }* }*/
class Solution {public int maxDepth(TreeNode root) {return getdepth(root);}public int getdepth(TreeNode root){if(root==null)return 0;int rdepth=getdepth(root.right);int ldepth=getdepth(root.left);int depth=Math.max(rdepth,ldepth)+1;return depth;}
}
二、最小深度
111. 二叉树的最小深度 - 力扣(LeetCode)
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
//递归法
/*** Definition for a binary tree node.* public 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;* }* }*/
class Solution {public int minDepth(TreeNode root) {return getdepth(root);}public int getdepth(TreeNode root){if(root==null)return 0;int rdepth=getdepth(root.right);int ldepth=getdepth(root.left);if(root.left==null&&root.right!=null)return rdepth+1;//左为空,右不为空,说明此时不是最近叶子结点if(root.left!=null&&root.right==null)return ldepth+1;//左不为空,右为空,说明此时不是最近叶子结点int depth=Math.min(rdepth,ldepth)+1;return depth;}
}