image.png

    1. public class TreeDeep {
    2. public static void main(String[] args) {
    3. TreeNode treeNode7 = new TreeNode(7,null, null);
    4. TreeNode treeNode6 = new TreeNode(6, treeNode7, null);
    5. TreeNode treeNode5 = new TreeNode(5,null, treeNode6);
    6. TreeNode treeNode4 = new TreeNode(4,null, null);
    7. TreeNode treeNode3 = new TreeNode(3,null, null);
    8. TreeNode treeNode2 = new TreeNode(2, treeNode3, treeNode4);
    9. TreeNode treeNode1 = new TreeNode(1, treeNode2, treeNode5);
    10. System.out.println(minDepth(treeNode1));
    11. }
    12. private static int minDepth(TreeNode treeNode) {
    13. if (null == treeNode) return 0;
    14. // 遍历到叶子节点
    15. if (null == treeNode.left && null == treeNode.right) return 1;
    16. int depth = Integer.MAX_VALUE;
    17. if (null != treeNode.left) {
    18. // 递归遍历左节点的深度
    19. depth = Math.min(minDepth(treeNode.left), depth);
    20. }
    21. if (null != treeNode.right) {
    22. // 递归遍历右节点的深度
    23. depth = Math.min(minDepth(treeNode.right), depth);
    24. }
    25. return depth + 1;
    26. }
    27. static class TreeNode{
    28. int val;
    29. private TreeNode left;
    30. private TreeNode right;
    31. int deep;
    32. public TreeNode(int val, TreeNode left, TreeNode right) {
    33. this.val = val;
    34. this.left = left;
    35. this.right = right;
    36. }
    37. }
    38. }