【leetcode】104. Maximum Depth of Binary Tree【java】三种实现方法:递归、BFS、DFS
来源:互联网 发布:如何看待手撕鬼子 知乎 编辑:程序博客网 时间:2024/06/10 00:53
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.
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
//方法一:递归public class Solution { public int maxDepth(TreeNode root) { if (root == null){ return 0; } return 1 + Math.max(maxDepth(root.left), maxDepth(root.right)); }}//方法二 BFS 使用队列 这种方法相对快一些,也好一些public class Solution { public int maxDepth(TreeNode root) { if (root == null){ return 0; } Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.add(root); int count = 0; while (!queue.isEmpty()){ int size = queue.size(); for (int i = size; i > 0; i--){ TreeNode node = queue.poll(); if (node.left != null){ queue.add(node.left); } if (node.right != null){ queue.add(node.right); } } count++; } return count; }}//方法3 DFS 使用栈public class Solution { public int maxDepth(TreeNode root) { if (root == null){ return 0; } Stack<TreeNode> stack = new Stack<>(); Stack<Integer> value = new Stack<>(); int max = 0; stack.push (root); value.push(1); while (!stack.isEmpty()){ TreeNode node = stack.pop(); int temp = value.pop(); max = Math.max(temp, max); if (node.left != null){ stack.push(node.left); value.push(temp + 1); } if (node.right != null){ stack.push(node.right); value.push(temp + 1); } } return max; }}
0 0
- 【leetcode】104. Maximum Depth of Binary Tree【java】三种实现方法:递归、BFS、DFS
- 【LeetCode】104. Maximum Depth of Binary Tree(DFS|BFS)
- LeetCode oj 104. Maximum Depth of Binary Tree(DFS||BFS)
- [DFS] leetcode 104. Maximum Depth of Binary Tree
- LeetCode 104. Maximum Depth of Binary Tree和111. Minimum Depth of Binary Tree 递归
- DFS:104. Maximum Depth of Binary Tree
- leetcode Maximum Depth of Binary Tree java实现
- [Leetcode] Maximum Depth of Binary Tree (Java)
- [LeetCode][Java] Maximum Depth of Binary Tree
- LeetCode|Maximum Depth of Binary Tree-java
- (java)leetcode Maximum Depth of Binary Tree
- leetcode:Maximum Depth of Binary Tree 【Java】
- [LeetCode]104.Maximum Depth of Binary Tree
- 【LeetCode】104.Maximum Depth of Binary Tree
- [Leetcode] 104. Maximum Depth of Binary Tree
- LeetCode --- 104. Maximum Depth of Binary Tree
- LeetCode 104. Maximum Depth of Binary Tree
- leetCode 104. Maximum Depth of Binary Tree
- 接口幂等的重要性
- 论坛营销方式
- linux - 查看端口使用情况
- js 获取按键的keyCode
- 类模板零值初始化
- 【leetcode】104. Maximum Depth of Binary Tree【java】三种实现方法:递归、BFS、DFS
- Laravel问题整理
- ubuntu服务器mysql远程访问
- Android中Bitmap转成Mat
- SpringMVC框架刘宝宝深度版——Springmvc搭建步骤
- Light Pre-Pass 渲染器----为多光源设计一个渲染器
- 利用boost做string到wstring转换,以及字符集转换
- Ruby 中分页功能的实现
- stringstream的用法