
public class TreeDeep { public static void main(String[] args) { TreeNode treeNode7 = new TreeNode(7,null, null); TreeNode treeNode6 = new TreeNode(6, treeNode7, null); TreeNode treeNode5 = new TreeNode(5,null, treeNode6); TreeNode treeNode4 = new TreeNode(4,null, null); TreeNode treeNode3 = new TreeNode(3,null, null); TreeNode treeNode2 = new TreeNode(2, treeNode3, treeNode4); TreeNode treeNode1 = new TreeNode(1, treeNode2, treeNode5); System.out.println(minDepth(treeNode1)); } private static int minDepth(TreeNode treeNode) { if (null == treeNode) return 0; // 遍历到叶子节点 if (null == treeNode.left && null == treeNode.right) return 1; int depth = Integer.MAX_VALUE; if (null != treeNode.left) { // 递归遍历左节点的深度 depth = Math.min(minDepth(treeNode.left), depth); } if (null != treeNode.right) { // 递归遍历右节点的深度 depth = Math.min(minDepth(treeNode.right), depth); } return depth + 1; } static class TreeNode{ int val; private TreeNode left; private TreeNode right; int deep; public TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = left; this.right = right; } }}