154.Minimum Depth of Binary Tree

题目:

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.

最小深度是沿从根节点到最近的叶节点的最短路径上的节点数。

Note: A leaf is a node with no children.

注意:叶子是没有子节点的节点。

Example:

Given binary tree [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

return its minimum depth = 2.

解答:

 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 class Solution {
11     public int minDepth(TreeNode root) {
12         if(root==null) return 0;
13         int left=minDepth(root.left);
14         int right=minDepth(root.right);
15         return (left==0 || right==0) ? left+right+1:Math.min(left,right)+1;
16     }
17 }

详解:

 DFS 栈 递归

posted @ 2018-09-10 22:14  chan_ai_chao  阅读(86)  评论(0编辑  收藏  举报