From 4c9fd50d1cf37c29502a444c1c056bba2ec276b8 Mon Sep 17 00:00:00 2001 From: Orkhan Huseynli Date: Sun, 25 Dec 2022 19:34:24 +0400 Subject: [PATCH] Update 104-Maximum-Depth-of-Binary-Tree.java --- java/104-Maximum-Depth-of-Binary-Tree.java | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/java/104-Maximum-Depth-of-Binary-Tree.java b/java/104-Maximum-Depth-of-Binary-Tree.java index 325b5e298..1a2032fd1 100644 --- a/java/104-Maximum-Depth-of-Binary-Tree.java +++ b/java/104-Maximum-Depth-of-Binary-Tree.java @@ -1,7 +1,27 @@ +// Recursive DFS class Solution { - public int maxDepth(TreeNode root) { if (root == null) return 0; return 1 + Math.max(maxDepth(root.left), maxDepth(root.right)); } } + +// BFS +class Solution { + public int maxDepth(TreeNode root) { + if (root == null) return 0; + Queue queue = new LinkedList<>(); + queue.add(root); + int levels = 0; + while (!queue.isEmpty()) { + int size = queue.size(); + for (int i = 0; i < size; i++) { + TreeNode current = queue.poll(); + if (current.left != null) queue.add(current.left); + if (current.right != null) queue.add(current.right); + } + levels++; + } + return levels; + } +}