0
点赞
收藏
分享

微信扫一扫

力扣104.二叉树的最大深度

IT影子 2022-03-12 阅读 96

104.二叉树的最大深度

思路1(迭代):

  1. 最大深度即树的高度,创建队列存入根节点,并创建变量表示每层元素的个数
  2. 当队列不为空时,取出根节点下的左节点和右节点,直至取完这层所有元素的左右节点
  3. 取完之后重置元素个数,此时表示下一层的元素个数,并把 高度加一。

代码实现

/**
 * 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 maxDepth(TreeNode root) {
        if (root == null) return 0;

        Queue<TreeNode> queue = new LinkedList<>();
        int height = 0;
        queue.offer(root);
        int levelSize = 1;//记录每层元素个数
        while (!queue.isEmpty()) {
            levelSize--;
            TreeNode node = queue.poll();
            if (node.left != null) {
                queue.offer(node.left);
            }
            if (node.right != null) {
                queue.offer(node.right);
            }
            if (levelSize == 0) {
                levelSize = queue.size();
                height++;
            }
        }

        return height;
    }
}

思路2(递归):

  1. 找到递归结束条件,即 root == null
  2. 先递归遍历左子树再递归遍历右子树,递归下去那么最终会到达叶子节点,它的左右子树都是空的,所以返回0,所以在当前节点加上1就是当前节点的高度,最终返回到根节点,返回两边树的最大的高度。

代码实现

/**
 * 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 maxDepth(TreeNode root) {
        if (root == null) {
            return 0;
        } else {
            int leftDepth = maxDepth(root.left);
            int rightDepth = maxDepth(root.right);
            return Math.max(leftDepth, rightDepth) + 1;
        }
    }
}
举报

相关推荐

0 条评论