leetcode--Minimum Depth of Binary Tree

来源:互联网 发布:java 整形转byte 编辑:程序博客网 时间:2024/05/20 18:18

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.

分类:二叉树

题意:对于指定的二叉树,查找它的最小深度。最小深度是指,从当前节点开始,到其叶子节点的最短路径的长度。


解法1:递归。注意题目要求,最短路径是指当前节点到其叶子节点。所有如果当前节点没有左子树,则最短路径为右子树的最短路径加一;如果当前节点没有右子树,则最短路径为左子树的最短路径加一;如果左右子树都存在,才比较选出最短路径。

[java] view plain copy
  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. public class Solution {  
  11.     public int minDepth(TreeNode root) {  
  12.         if(root==nullreturn 0;  
  13.         else{  
  14.             int left = minDepth(root.left);//左子树最短路径  
  15.             int right = minDepth(root.right);//右子树最短路径  
  16.             if(left==0&&right==0return 1;//如果左右子树都不存在,返回1  
  17.             if(left==0&&right!=0return right+1;//如果左子树不存在,为右子树deepth+1  
  18.             if(left!=0&&right==0return left+1;//如果右子树不存在,为左子树deepth+1  
  19.             return left<right?left+1:right+1;//如果左右子树都存在,比较选出较小的  
  20.         }  
  21.     }         
  22. }  


解法2:


原文链接http://blog.csdn.net/crazy__chen/article/details/46378969

原创粉丝点击