本文共 650 字,大约阅读时间需要 2 分钟。
题目:给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7],3 / \ 9 20 / \ 15 7
返回它的最小深度 2.
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public int minDepth(TreeNode root) { if(root == null) return 0;//空节点 int lh = minDepth(root.left), rh = minDepth(root.right);//左子树高度和右子树高度 if(root.left == null || root.right == null) return lh + rh + 1;//左右子树其中一个为空,则其中一个高度为0 return lh > rh? rh + 1 : lh + 1;//返回更小的+1(子树的根节点) }}
转载地址:http://fprdf.baihongyu.com/