《LeetCode力扣练习》代码随想录——二叉树(二叉树的最小深度—Java)
刷题思路来源于 代码随想录
111. 二叉树的最小深度
-
二叉树-后序遍历
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { public int minDepth(TreeNode root) { return recursion(root); } private int recursion(TreeNode root) { if (root == null) { return 0; } if (root.left != null && root.right == null) { return 1 + recursion(root.left); } if (root.left == null && root.right != null) { return 1 + recursion(root.right); } int left = recursion(root.left); int right = recursion(root.right); return 1 + (left < right ? left : right); } }