104. Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
题目含义:找出二叉树的深度
方法一:递归
1 public int maxDepth(TreeNode root) { 2 return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1; 3 }
方法二:BFS
1 public int maxDepth(TreeNode root) { 2 if(root == null) return 0; 3 Queue<TreeNode> queue = new LinkedList<>(); 4 queue.offer(root); 5 int count = 0; 6 while(!queue.isEmpty()) { 7 int size = queue.size(); 8 for (int i=size;i>0;i--) 9 { 10 TreeNode node = queue.poll(); 11 if(node.left != null) queue.offer(node.left); 12 if(node.right != null) queue.offer(node.right); 13 } 14 count++; 15 } 16 return count; 17 }
方法三:
1 public int maxDepth(TreeNode root) { 2 if(root == null) return 0; 3 Stack<TreeNode> stack = new Stack<>(); 4 Stack<Integer> value = new Stack<>(); 5 stack.push(root); 6 value.push(1); 7 int max = 0; 8 while(!stack.isEmpty()) { 9 TreeNode node = stack.pop(); 10 int temp = value.pop(); 11 max = Math.max(temp, max); 12 if(node.left != null) { 13 stack.push(node.left); 14 value.push(temp+1); 15 } 16 if(node.right != null) { 17 stack.push(node.right); 18 value.push(temp+1); 19 } 20 } 21 return max; 22 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!