Minimum Depth of Binary Tree,求树的最小深度
Posted 32ddd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Minimum Depth of Binary Tree,求树的最小深度相关的知识,希望对你有一定的参考价值。
算法分析:递归和非递归两种方法。
public class MinimumDepthofBinaryTree { //递归,树的最小深度,就是它左右子树的最小深度的最小值+1 public int minDepth(TreeNode root) { if(root == null) { return 0; } int lmin = minDepth(root.left); int rmin = minDepth(root.right); if(lmin == 0 && rmin == 0) { return 1; } if(lmin == 0)//左子树为空,右子树不为空,则最小深度为右子子树的最小深度+1 { return rmin + 1; } if(rmin == 0) { return lmin + 1; } return Math.min(lmin, rmin)+1; } //非递归,按层遍历 public int minDepth2(TreeNode root) { if(root == null) { return 0; } ArrayList<TreeNode> list = new ArrayList<>(); int count = 1; list.add(root); while(!list.isEmpty()) { ArrayList<TreeNode> temp = new ArrayList<>(); for (TreeNode node : list) { if(node.left == null && node.right == null)//当节点左右子树都为空时,该节点的深度即为树的最小深度 { return count; } if(node.left != null) { temp.add(node.left); } if(node.right != null) { temp.add(node.right); } } count ++;//按层遍历,每循环一次,就是一层,层数加1 list = temp; } return count; } }
以上是关于Minimum Depth of Binary Tree,求树的最小深度的主要内容,如果未能解决你的问题,请参考以下文章
111. Minimum Depth of Binary Tree
[LeetCode]题解(python):111 Minimum Depth of Binary Tree
111. Minimum Depth of Binary Tree