龙空技术网

LeetCode算法第111题:二叉树的最小深度

小天使淘淘 90

前言:

现在咱们对“c语言二叉树的深度算法”大概比较关怀,我们都想要分析一些“c语言二叉树的深度算法”的相关文章。那么小编也在网上汇集了一些有关“c语言二叉树的深度算法””的相关资讯,希望姐妹们能喜欢,看官们一起来学习一下吧!

题目描述:

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明: 叶子节点是指没有子节点的节点。

示例:

给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.

思路:

要计算二叉树的最小深度,就是找出跟节点的左右子树的最小深度,然后 + 1。有一个注意事项是二叉树的深度计算是从跟节点到叶子节点的深度,如果一个节点包含一个子树的话,也不计算深度。最后,通过递归的方式获得我们想要的结果。

Java代码:

public int minDepth(TreeNode root) {	if(null == root){		return 0;	}	if(null == root.left && null == root.right){		return 1;	}else if(null == root.left){		return 1 + minDepth(root.right);	}else if(null == root.right){		return 1 + minDepth(root.left);	}else{		return Math.min(minDepth(root.left),minDepth(root.right)) + 1;	}	}

标签: #c语言二叉树的深度算法