从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结
104. 二叉树的最大深度(Easy)
-
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
-
示例:
给定二叉树 [3,9,20,null,null,15,7],返回它的最大深度 3 。
-
递归
class Solution { public int maxDepth(TreeNode root) { if (root == null) return 0; int left = maxDepth(root.left) + 1; int right = maxDepth(root.right) + 1; return Math.max(left, right); } }
-
迭代
class Solution { public int maxDepth(TreeNode root) { Deque<TreeNode> queue = new ArrayDeque<>(); if (root == null) return 0; int deep = 0; queue.add(root); while (!queue.isEmpty()) { deep++; int len = queue.size(); while (len > 0) { TreeNode cur = queue.remove(); if (cur.left != null) queue.add(cur.left); if (cur.right != null) queue.add(cur.right); len--; } } return deep; } }