leetcode111:二叉树的最小深度(C++)

  • 时间:
  • 来源:斗升之水网
版权声明:本文是博客作者的原创文章,遵循CC 4.0 BY-SA版权协议。请附上原始资料和本声明的链接以便重印。 本文链接:https://blog.csdn.net/weixin _ 42947653/article/details/102549865做这个问题主要是练习深度搜索(DFS)和广度搜索(BFS) 事实上,理解遍历树问题最简单的方法是递归。由于实践,递归很少被引入。 首先,DFS和BFS的区别在于:字面上,DFS是一个深度搜索,深度优先。在从头节点一直搜索到底部之后,DFS一步一步地返回到其他节点 这个过程需要递归 BFS是一个宽搜索 ,广度优先,从节点开始先找到相同深度的道路,然后再搜索下一个深度,直到遍历完成 使用的主要结构是队列(队列的知识由其自身补充-) 接下来,分析问题:给定一棵二叉树,找出它的最小深度 最小深度是从根节点到最近的叶节点的最短路径上的节点数 注意:叶节点是指没有子节点的节点 例如:给定二叉树[3,9,20,空,空,15,7],3/9 20/15 7返回其最小深度2。资料来源:LeetCode链接:BFS 原谅我没有写DFS 类解决方案{ public:int MinDepth(TreeNode * root){如果(root = =空)返回0;//判断头节点是否为空 如果是,返回0。结对<。树节点* ,int>。>;que。//定义一个队列并将节点绑定到层号que.push(成对(根,1))with Pair;//将根节点按层号为1的队列中,同时(1) {treenode * node = que.front()。首先;//对于当前节点,请注意它每次都是队列中的第一个节点。 因为一个节点用于弹出一个 int level=que.front() 。第二;//层号que . pop();//如果( !节点->;左和。& amp!节点->;右)返回级别;//层数如果(节点->;左)//按左节点que.push(成对(节点->;左侧,级别+1));如果(节点->;右)//按右节点que.push(使成对(节点->;右侧,级别+1));}//完成哈哈哈,成功交流 } }; 【实例分割】mask的IoU的代码分析