Dado un árbol binario, encuentre su profundidad mínima.
La profundidad mínima es el número de nodos a lo largo de la ruta más corta desde el nodo raíz hasta el nodo hoja más cercano.
Pensamientos
LinkedList es una cola en Java. Los métodos add () y remove () se utilizan para manipular la cola.
Solución Java
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public int minDepth(TreeNode root) { if(root == null){ return 0; } LinkedList<TreeNode> nodes = new LinkedList<TreeNode>(); LinkedList<Integer> counts = new LinkedList<Integer>(); nodes.add(root); counts.add(1); while(!nodes.isEmpty()){ TreeNode curr = nodes.remove(); int count = counts.remove(); if(curr.left == null && curr.right == null){ return count; } if(curr.left != null){ nodes.add(curr.left); counts.add(count+1); } if(curr.right != null){ nodes.add(curr.right); counts.add(count+1); } } return 0; } } |