本文共 638 字,大约阅读时间需要 2 分钟。
思路:分左右两路递归查询,查到某个节点下left和right都为null时返回,比较左右的值,取小的
/** * 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; } if(root.left==null&&root.right==null){ return 1; } int left=-1; if(root.left!=null){ left=minDepth(root.left)+1; } int right=-1; if(root.right!=null){ right=minDepth(root.right)+1; } if(left==-1){ return right; } if(right==-1){ return left; } return Math.min(left, right); }}
耗时:340ms,上游