当前位置:   article > 正文

leetcode---树专题_ldepth攻略

ldepth攻略

 

Leetcode——二叉树常考算法整理

BFS与DFS常考算法整理

Leetcode——回溯法常考算法整理

动态规划(Dynamic Programming)算法与LC实例的理解

决战Leetcode: easy part(1-50)

决战Leetcode: easy part(51-96)

 

题目1: 求一棵二叉树的最大深度 

 

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. /**
  2. * Definition for binary tree
  3. * public class TreeNode {
  4. * int val;
  5. * TreeNode left;
  6. * TreeNode right;
  7. * TreeNode(int x) { val = x; }
  8. * }
  9. */
  10. //求二叉树的最大深度
  11. public class Solution {
  12. public int maxDepth(TreeNode root) {
  13. if(root==null)
  14. return 0;
  15. int lDepth= maxDepth(root.left);
  16. int rDepth= maxDepth(root.right);
  17. return 1+( lDepth>rDepth ? lDepth: rDepth); //左右子树 选最大深度者(即使一侧没有节点也没关系 肯定选最大的 和0无关)
  18. }
  19. }

 

 

题目2:求一棵二叉树的最小深度(需要考虑一侧无子节点情况)

Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.

  1. /**
  2. * Definition for binary tree
  3. * public class TreeNode {
  4. * int val;
  5. * TreeNode left;
  6. * TreeNode right;
  7. * TreeNode(int x) { val = x; }
  8. * }
  9. */
  10. public class Solution {
  11. public int run(TreeNode root) {
  12. if(root==null)
  13. return 0;
  14. int lDepth=run(root.left);
  15. int rDepth=run(root.right);
  16. if(lDepth==0 || rDepth==0) //需要考虑可能没有一侧子节点的情况 这样最小的是0 但只有根节点 不能算是到叶子节点的最短路径
  17. return lDepth+rDepth+1;
  18. return 1+(lDepth< rDepth? lDepth: rDepth);
  19. }
  20. }

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/788832
推荐阅读
相关标签
  

闽ICP备14008679号