题目描述
解题思路
这个题目是典型的BFS算法应用的题目,我们需要采用层级遍历对树进行遍历,当层级遍历的过程中发现某个节点的左右子节点军为空的时候,则表示当前路径便是最短路径。
解题代码
public class TreeSolution {
public int minDepth(TreeNode root) {
if (root == null) {
return 0;
}
Queue<TreeNode> treeNodeQueue = new LinkedList<TreeNode>();
int depth = 0;
treeNodeQueue.add(root);
while (!treeNodeQueue.isEmpty()) {
depth++;
int size = treeNodeQueue.size();
for (int i = 0; i < size; i++) {
TreeNode treeNode = treeNodeQueue.poll();
if (treeNode.left == null && treeNode.right == null) {
return depth;
}
if (treeNode.left != null) {
treeNodeQueue.add(treeNode.left);
}
if (treeNode.right != null) {
treeNodeQueue.add(treeNode.right);
}
}
}
return depth;
}
}
{{o.name}}
{{m.name}}