二叉树最小深度
程序员文章站
2022-07-14 18:05:23
...
二叉树最小深度
题目描述
求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。
本题目知识点:递归
思路
有关树的就应该考虑递归了!有以下几种情况
1、根节点为null,深度为0;
2、根节点没有左右孩子,深度为1 ;
3、根节点只有一个孩子,那么可以判断,二叉树的深度应该是其左右孩子的深度较大的值加1;
!!!这个地方不能是左右孩子里深度较小的+1了,因为root不是叶子结点
4、二叉树的根节点既有右子树又有左子树,那么可以判断,那么二叉树的深度应该是其左右子树的深度较小值加1。
代码
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int run(TreeNode root) {
if(root==null){
return 0;
}
if(root.left==null && root.right==null){
return 1;
}else if(root.left==null || root.right==null){
return Math.max(run(root.left),run(root.right))+1;
}else{
return Math.min(run(root.left),run(root.right))+1;
}
}
}
上一篇: jquery搜索文本框提示
下一篇: 延迟执行某个任务