【二叉树】【BFS】【DFS】111. 二叉树的最小深度
2023-12-30 06:14:05
法1:BFS
class Solution {
public int minDepth(TreeNode root) {
if (root == null) {
return 0;
}
int depth = 1;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
int curSize = queue.size();
for (int i = 0; i < curSize; ++i) { // 上面记录curSize配合内部for循环的操作很棒!!!
TreeNode topNode = queue.poll();
if (topNode.left == null && topNode.right == null) {
return depth;
}
if (topNode.left != null) {
queue.offer(topNode.left);
}
if (topNode.right != null) {
queue.offer(topNode.right);
}
}
++depth;
}
return depth;
}
}
法2:DFS
class Solution {
public int minDepth(TreeNode root) {
if (root == null) {
return 0;
}
if (root.left == null && root.right == null) {
return 1;
} else if (root.left == null) {
return 1 + minDepth(root.right);
} else if (root.right == null) {
return 1 + minDepth(root.left);
} else {
return Math.min(1 + minDepth(root.left), 1 + minDepth(root.right));
}
}
}
文章来源:https://blog.csdn.net/Allenlzcoder/article/details/135281410
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!