java练习(31)
- 互联网
- 2025-08-28 15:42:02

ps:题目来自力扣
二叉树的最小深度
给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明:叶子节点是指没有子节点的节点
// 定义二叉树节点类 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) { // 如果根节点为空,最小深度为 0 if (root == null) { return 0; } // 递归计算左子树的最小深度 int leftDepth = minDepth(root.left); // 递归计算右子树的最小深度 int rightDepth = minDepth(root.right); // 如果左子树为空,最小深度为右子树最小深度加 1 if (root.left == null) { return rightDepth + 1; } // 如果右子树为空,最小深度为左子树最小深度加 1 if (root.right == null) { return leftDepth + 1; } // 如果左右子树都不为空,取左右子树最小深度的较小值加 1 return Math.min(leftDepth, rightDepth) + 1; } }java练习(31)由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“java练习(31)”