LeetCode | Minimum Depth of Binary Tree

题目:给定一个二叉树,找到其最小深度。最小深度是从根节点到最近叶节点的最短路径的节点数。

 1 /**
 2      * Definition for binary tree
 3      * public class TreeNode {
 4      *     int val;
 5      *     TreeNode left;
 6      *     TreeNode right;
 7      *     TreeNode(int x) { val = x; }
 8      * }
 9      */
10     /**
11     最小深度为:根节点到达最近叶节点的最短路径
12     总体思想是:左子树最小深度+1,右子树最小深度+1,取小的一个
13     需要考虑:当树只有一个子树的情况下,最小深度为:左右子树的最大值
14     */
15     public class Solution {
16         public int run(TreeNode root) {
17             if(root == null)
18                 return 0;
19            
20             int left = run(root.left) + 1;
21             int right =run(root.right) + 1 ;
22             
23             if(left == 1 || right == 1)
24                 return left > right ? left : right;
25             else
26                 return left > right ? right : left;
27         }
28     }

 

posted @ 2017-04-28 22:05  huangyichun  阅读(150)  评论(0编辑  收藏  举报