【LeetCode】Minimum Depth Of Binary Tree二叉树的最小深度
来源:互联网 发布:手机淘宝没有评价订单 编辑:程序博客网 时间:2024/06/11 11:16
二叉树的最小深度
给定一个二叉树,找出其最小深度。
二叉树的最小深度为根节点到最近叶子节点的距离。
样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最小深度为 2
标签
二叉树 深度优先搜索
(1)Java
package BinaryTree;import java.util.LinkedList;import java.util.Queue;//Version1: Recursionpublic class MinimumDepthOfBinaryTree { public int minDepth(TreeNode root) { if(root == null){ return 0; } return getMin(root); } private int getMin(TreeNode root){ if(root == null){ return Integer.MAX_VALUE; } if(root.left == null && root.right == null){//leaf return 1; } return Math.min(getMin(root.left),getMin(root.right)) + 1; }}//Version 2: Divide & Conquerclass Solution { public int minDepth(TreeNode root) { if(root==null)return 0; int left = minDepth(root.left); int right = minDepth(root.right); if(left == 0 && right == 0){ return 1; }else if(left == 0){ left = right; }else if(right == 0){ right = left; } return Math.min(left, right) + 1; }}//Version 3: Non-Recursionpublic class Solution { /* * @param root: The root of binary tree * @return: An integer */ public int minDepth(TreeNode root) { if (root == null) { return 0; } Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); int depth = 0; while (!queue.isEmpty()) { int size = queue.size(); depth++; for (int i = 0; i < size; i++) { TreeNode node = queue.poll(); if (node.left == null && node.right == null) { return depth; } if (node.left != null) { queue.offer(node.left); } if (node.right != null) { queue.offer(node.right); } } } return 0; }} //Version 3 class Solution { public int minDepth(TreeNode root) { if(root==null)return 0; int left = minDepth(root.left); int right = minDepth(root.right); if(left == 0 && right == 0){ return 1; }else if(left == 0){ left = right; }else if(right == 0){ right = left; } return Math.min(left, right) + 1; } }
(2)C++
#include <algorithm>class Solution {public: int getMin(TreeNode* root){ if(root == NULL){ return 0x7fffffff; } if(!root->left && !root->right){//leaf return 1; } return min(getMin(root->left), getMin(root->right)) + 1; } int minDepth(TreeNode * root) { if(!root){ return 0; } return getMin(root); }};
阅读全文
0 0
- LeetCode Minimum Depth of Binary Tree 最小深度二叉树
- Leetcode Minimum Depth of Binary Tree 二叉树最小深度
- LeetCode:minimum-depth-of-binary-tree(二叉树最小深度)
- Minimum Depth of Binary Tree 二叉树的最小深度
- Minimum Depth of Binary Tree 二叉树的最小深度
- Minimum Depth of Binary Tree 二叉树的最小深度
- LeetCode OJ 之 Minimum Depth of Binary Tree(二叉树的最小深度)
- [Java代码] [Leetcode] Maximum and Minimum Depth of Binary Tree 二叉树的最小最大深度
- [LeetCode]111. Minimum Depth of Binary Tree--二叉树的最小深度
- 【LeetCode】Minimum Depth Of Binary Tree二叉树的最小深度
- Minimum Depth of Binary Tree 二叉树最小深度
- lintcode minimum-depth-of-binary-tree 二叉树最小深度
- Minimum Depth of Binary Tree 求二叉树最小高度/深度@LeetCode
- leetCode 111.Minimum Depth of Binary Tree(二叉树最小深度) 解题思路和方法
- [LeetCode-111] Minimum Depth of Binary Tree (二叉树最小深度)
- LeetCode 111. Minimum Depth of Binary Tree(二叉树最小深度)
- Leetcode 111. Minimum Depth of Binary Tree 二叉树最小深度
- 【LeetCode-面试算法经典-Java实现】【111-Minimum Depth of Binary Tree(二叉树的最小深度)】
- 31. Next Permutation
- selenium之终极封装
- 【Leetcode-Medium-22】Generate Parentheses
- CCS5.5新建工程
- 【Flask】我的第一个Flask程序
- 【LeetCode】Minimum Depth Of Binary Tree二叉树的最小深度
- Linked server和SSIS连接Oracle时的常见问题(三)
- Node.js 路由
- Dapper插入记录性能测试
- sql-server(模式创建)
- 01_自动化Python_学习概述
- codeforces 681A A Good Contest
- 自然语言处理中CNN模型之两种pooling方法
- JDBC第三方连接池