LeetCode-Minimum Depth of Binary Tree
来源:互联网 发布:java 创建服务 编辑:程序博客网 时间:2024/06/16 08:11
题目描述
Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
给一个二叉树,求二叉树的最小深度,即从根节点到最近的叶子节点的距离。
方法一:递归实现
class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}/*思路: 递归,若为空树返回0; 若左子树为空,则返回右子树的最小深度+1;(加1是因为要加上根这一层,下同) 若右子树为空,则返回左子树的最小深度+1; 若左右子树均不为空,则取左、右子树最小深度的较小值,+1; */public class Solution { public int run(TreeNode root) { if (root == null) { return 0; } else if (root.left == null) { return run(root.right) + 1; } else if (root.right == null) { return run(root.left) + 1; } else { return Math.min(run(root.left), run(root.right))+1; } }}
方法二:树的层次遍历(使用队列)
import java.util.LinkedList;import java.util.Queue;class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}/* 思路:层序遍历,找到第一个左右结点都为null的情况,就返回使用<<队列>>来保存每一层的节点 */public class Solution { public int run(TreeNode root) { if (root == null) { return 0; } if(root.left==null&&root.right==null){ return 1; } Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.add(root); int depth = 0; while(!queue.isEmpty()){ depth++; int len = queue.size(); for(int i=0;i<len;i++) { TreeNode treeNode = queue.poll(); if(treeNode.left==null&&treeNode.right==null) { return depth; } if(treeNode.left!=null) { queue.add(treeNode.left); } if(treeNode.right!=null) { queue.add(treeNode.right); } } } return depth; }}
阅读全文
0 0
- LeetCode: Minimum Depth of Binary Tree
- [Leetcode] Minimum Depth of Binary Tree
- LeetCode : Minimum Depth of Binary Tree
- leetcode 31: Minimum Depth of Binary Tree
- [LeetCode] Minimum Depth of Binary Tree - BFS
- [LeetCode] Minimum Depth of Binary Tree - DFS
- 【leetcode】Minimum Depth of Binary Tree
- LeetCode:Minimum Depth of Binary Tree
- [LeetCode]Minimum Depth of Binary Tree
- [Leetcode]Minimum Depth of Binary Tree
- [leetcode]Minimum Depth of Binary Tree
- Leetcode: Minimum Depth of Binary Tree
- LeetCode-Minimum Depth of Binary Tree
- [leetcode] Minimum Depth of Binary Tree
- LeetCode - Minimum Depth of Binary Tree
- 【Leetcode】Minimum Depth of Binary Tree
- LeetCode | Minimum Depth of Binary Tree
- LeetCode - Minimum Depth of Binary Tree
- Servlet中的文件上传
- java中重载与重写的区别
- Eclipse中修改注释中@author
- MyBatis集成log4j
- Android NDK环境搭建
- LeetCode-Minimum Depth of Binary Tree
- 拭血长短句手札
- simcom2G模块使用
- C#高级篇 5
- Activiti查询最新版本的流程定义集合
- 博客管理系统
- 一个完整的vue应用 ( vuex+vue-router ) 起手
- c#3 方法参数
- Android6.0运行时权限,拒绝了权限还返回获取成功