博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 111. 二叉树的最小深度 dfs
阅读量:3904 次
发布时间:2019-05-23

本文共 1255 字,大约阅读时间需要 4 分钟。

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

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

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

示例:

给定二叉树 [3,9,20,null,null,15,7],

3   / \  9  20    /  \   15   7

返回它的最小深度  2.

 求最小深度,分三种情况。如果左右子树都不为空,则递归求他们两者的最小值,若左(右)子树不为空,则递归下去。

Java:

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    public int minDepth(TreeNode root) {        if(root==null)            return 0;        if(root.left!=null&&root.right!=null)            return Math.min(minDepth(root.left)+1,minDepth(root.right)+1);        else if(root.right!=null)            return minDepth(root.right)+1;        else             return minDepth(root.left)+1;    }}

C++:

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int minDepth(TreeNode* root) {         if(root==NULL)            return 0;        if(root->left&&root->right)            return min(minDepth(root->left),minDepth(root->right))+1;        else if(root->right)            return minDepth(root->right)+1;        else             return minDepth(root->left)+1;    }};

 

 

转载地址:http://pvaen.baihongyu.com/

你可能感兴趣的文章
解决chrome下用google搜索图片第二页以后不显示的问题
查看>>
将163邮箱的通讯录导入到outlook2010
查看>>
winRar过期了,总弹出 “购买……”
查看>>
看过的动漫
查看>>
华硕 P5KPL-AM 前面板耳机没有声音
查看>>
个人常用的Chrome浏览器扩展程序
查看>>
labview 局部变量问题
查看>>
labview 循环外部与数组相连时问题
查看>>
哈佛大学凌晨4点半的景象--哈佛图书馆的二十条训言
查看>>
闲话机器人领域的国际会议
查看>>
Outlook2010到处通讯录
查看>>
Gmail导入通讯录
查看>>
小米笔记本安装Win 10历程
查看>>
【转】SLAM 论文阅读和分类整理
查看>>
【转】Ubuntu 16.04 重置密码(忘记密码)
查看>>
【转】信息奥赛一本通1185:单词排序(OJ题目描述有问题)
查看>>
【转】在EXCEL表格中如何用厘米毫米来设置行高列宽?
查看>>
开源spider
查看>>
HttpUnit: 一种在 WebSphere Studio 中测试 Web 应用程序的改进方式
查看>>
Python Self
查看>>