首页 > 代码库 > 重做104. Maximum Depth of Binary Tree
重做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.
思路:知道有recursion的方法。但是想应用一下dfs和backtracking,啊哈哈终于做出来了。
Solution1:
/** * 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; } List<Integer> res=new ArrayList<Integer>(); dfs(root,res,1); Collections.sort(res); return res.get(res.size()-1); } public void dfs(TreeNode root,List<Integer> res, int max) { if(root==null) { return; } if(root.left==null&&root.right==null) { res.add(max); return; } dfs(root.left,res,++max); max--; dfs(root.right,res,++max); max--; } }
Solution2:
/** * 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)); }}
Recursion的定义. ref:http://www.cs.princeton.edu/courses/archive/fall10/cos126/lectures/07-23Recursion-2x2.pdf
Recursive Program Recursive Program. Implement a function having integer arguments by
• base case: Implementing it for some specific values of the arguments.
• reduction step: Assume the function works for smaller values of its arguments and use it to implement it for the given values
重做104. Maximum Depth of Binary Tree
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。