博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode]-Minimum Depth of Binary Tree
阅读量:6240 次
发布时间:2019-06-22

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

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.

Hide Tags :Tree , Depth-first Search

题目:求取二叉树中最小深度,根节点定义为1深度。

思路:相同採取递归
递归终止条件:
     A:假设root为NULL。说明已经越界,返回深度0
推断节点走向:
     A:假设root为树叶, if(root->left == NULL && root->right == NULL) 返回深度1
     B:假设节点无左节点,即if(root->left == NULL ) ,则运行递归return minDepth(root->right) + 1;
     C:假设节点无右节点,则return minDepth(root->left ) + 1;
递归主进程:
int l = minDepth(root->left) + 1 ;
int r = minDepth(root->right)+ 1 ;
最后在推断l与r的大小,返回小者return min(l,r);

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     struct TreeNode *left; *     struct TreeNode *right; * }; */#define min(a,b) (((a)<(b))?(a):(b))int minDepth(struct TreeNode* root) {    if(root == NULL)                                return 0;    if(root->left == NULL && root->right == NULL)   return 1;    else if(root->left == NULL )                    return minDepth(root->right) + 1;    else if(root->right== NULL )                    return minDepth(root->left ) + 1;    int l = minDepth(root->left) + 1 ;    int r = minDepth(root->right)+ 1 ;    return min(l,r); }

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

你可能感兴趣的文章
<刘未鹏 MIND HACKS>读书笔记
查看>>
locate
查看>>
AceyOffice教程--如何判断单元格的内容
查看>>
前端 -- 超链接导航栏案例
查看>>
软工网络15个人作业
查看>>
css 兼容性写法,CSS hack写法
查看>>
剑指offer 之 C/C++基础知识1
查看>>
(KMP 暴力)Corporate Identity -- hdu -- 2328
查看>>
Silverlight程序中访问配置文件
查看>>
Linux下利用rsync实现多服务器文件同步
查看>>
2.3 Rust函数
查看>>
1.3 IDAE 中使用GO开发项目
查看>>
Activity、Fragment、ViewPage
查看>>
《信息安全系统设计基础》课程总结
查看>>
衣码对照表
查看>>
Vue-Router导航守卫
查看>>
tool
查看>>
hdu2087 剪花布条
查看>>
获取现阶段选中的tab的标题(easyui)
查看>>
tty的核心位置,与运行调用过程
查看>>