2026/2/17 6:15:20
网站建设
项目流程
二级域名网站免费申请,网站项目建设主要内容,雷州市规划建设局网站,企业简介的网站怎么做1. 题目
原题链接 给定一个二叉树#xff0c;找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明#xff1a;叶子节点是指没有子节点的节点。
示例 1#xff1a;
输入#xff1a;root [3,9,20,null,null,15,7] 输出#xff1a;2 示例…1. 题目原题链接给定一个二叉树找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明叶子节点是指没有子节点的节点。示例 1输入root [3,9,20,null,null,15,7]输出2示例 2输入root [2,null,3,null,4,null,5,null,6]输出5提示树中节点数的范围在 [0, 105] 内-1000 Node.val 10002. 题解2.1 解法1: 递归主要思想这道题的关键是搞清楚递归结束条件叶子节点的定义是左孩子和右孩子都为 null 时叫做叶子节点当 root 节点左右孩子都为空时返回 1当 root 节点左右孩子有一个为空时返回不为空的孩子节点的深度当 root 节点左右孩子都不为空时返回左右孩子较小深度的节点值classSolution{publicintminDepth(TreeNoderoot){if(rootnull)return0;if(root.leftnullroot.rightnull)return1;intleftminDepth(root.left);intrightminDepth(root.right);if(root.leftnull)returnright1;if(root.rightnull)returnleft1;returnMath.min(left,right)1;}}参考 二叉树的最小深度-理解递归结束条件2.2 解法2: BFSclassSolution{publicintminDepth(TreeNoderoot){if(rootnull)return0;QueueTreeNodequeuenewLinkedList();queue.offer(root);intdepth0;while(!queue.isEmpty()){intsizequeue.size();depth;for(inti0;isize;i){TreeNodepollqueue.poll();if(poll.leftnullpoll.rightnull){returndepth;}if(poll.left!null){queue.offer(poll.left);}if(poll.right!null){queue.offer(poll.right);}}}return0;}}