Given a binary tree, find its minimum depth.
The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
这道题个人觉得其实思路和之前那个maximum depth的题思路差不多。那道题能做这道题也就没问题了。
代码如下。~
/** * Definition for a binary tree node. * 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; } int min=Integer.MAX_VALUE; Stack<TreeNode> tree=new Stack<TreeNode>(); Stack<Integer> value=new Stack<Integer>(); tree.push(root); value.push(1); while(!tree.isEmpty()){ TreeNode temp=tree.pop(); int val=value.pop(); if(temp.left==null&&temp.right==null){ min=Math.min(val,min); } if(temp.right!=null){ tree.push(temp.right); value.push(val+1); } if(temp.left!=null){ tree.push(temp.left); value.push(val+1); } } return min; } }