博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 111. Minimum Depth of Binary Tree
阅读量:2377 次
发布时间:2019-05-10

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

头文件在

/*leetcode 111. Minimum Depth of Binary TreeGiven 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.题目大意:求解二叉树的最短路径解题思路:*/#include "TreeInclude.h"#include 
class Solution {public: //DFS int minDepth1(TreeNode* root) { if (!root) return 0; if (root->left == NULL && root->right == NULL) return 1; int left = minDepth(root->left); int right = minDepth(root->right); if (!root->left) return 1+right; if (!root->right) return 1+left; return 1 + min(left, right); } //BFS:层次遍历,用计数的方法分层次 int minDepth(TreeNode* root) { if (!root) return 0; queue
q; q.push(root); int ret = 1; int curLevel = 1; int nextLevel = 0; while (q.size()) { TreeNode* cur = q.front(); q.pop(); curLevel--; if (!cur->left && !cur->right) return ret; if (cur->left) { q.push(cur->left); ++nextLevel; } if (cur->right) { q.push(cur->right); ++nextLevel; } if (curLevel == 0) { curLevel = nextLevel; nextLevel = 0; ++ret; } } return ret; }};void TEST(){ Solution sol; vector
v{
1,2,3,4,-1,-1,5}; TreeNode* root = CreateTree(v); cout << sol.minDepth(root) << endl;}int main(){ TEST(); return 0;}

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

你可能感兴趣的文章
罗马数字与阿拉伯数字的相互转化
查看>>
3Sum
查看>>
Next Permutation
查看>>
sys文件系统
查看>>
Mysql常用命令大全
查看>>
Linux内核中C编程生僻用法(GNU C)
查看>>
辞职后五险一金怎么处理?
查看>>
几种开源的TCP/IP协议栈对比
查看>>
C语言之断言
查看>>
程序员技术练级攻略
查看>>
#define
查看>>
C语言之if...else PK switch...case
查看>>
关于SVN方面的问题
查看>>
深入理解C语言
查看>>
编程成就:开发人员如何升级
查看>>
如何防止代码腐烂
查看>>
va_start va_end 的使用和原理
查看>>
Linux 中的零拷贝技术,第 2 部分
查看>>
零拷贝技术的研究与实现
查看>>
零拷贝与 sendfile
查看>>