/**
* 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 helper(root);
}
/**
用递归,自下向上求最小深度
*/
public int helper(TreeNode root){
//如果节点为空,那么高度为0
if(root == null) {
return 0;
}
//如果节点不为空,先看左子树的高度
int leftHeight = helper(root.left);
//再看右子树的高度
int rightHeight = helper(root.right);
//然后再计算当前节点的高度,要求返回左右节点高度最小的那一个
return Math.min(leftHeight,rightHeight) + 1;
}
}
leetcode -- 111.二叉树的最小深度
最新推荐文章于 2024-10-06 13:05:10 发布