LeetCode559. N叉树的最大深度

不念不忘少年蓝@ 2022-05-08 02:10 254阅读 0赞

给定一个N叉树,找到其最大深度。

最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。

例如,给定一个 3叉树 :

NaryTreeExample.png

我们应返回其最大深度,3。

说明:

  1. 树的深度不会超过 1000
  2. 树的节点总不会超过 5000

思路:广度优先遍历树,计算树的层数,最大层数就是树最大深度。

  1. /*
  2. // Definition for a Node.
  3. class Node {
  4. public int val;
  5. public List<Node> children;
  6. public Node() {}
  7. public Node(int _val,List<Node> _children) {
  8. val = _val;
  9. children = _children;
  10. }
  11. };
  12. */
  13. class Solution {
  14. public int maxDepth(Node root) {
  15. if(null==root){
  16. return 0;
  17. }
  18. ArrayDeque<Node> queue=new ArrayDeque<Node>();
  19. queue.add(root);
  20. int count=0;
  21. while(!queue.isEmpty()){
  22. int size=queue.size();
  23. for(int i=0;i<size;i++){
  24. Node node=queue.removeFirst();
  25. for(Node n:node.children){
  26. queue.add(n);
  27. }
  28. }
  29. count++;
  30. }
  31. return count;
  32. }
  33. }

解法二:

  1. /*
  2. // Definition for a Node.
  3. class Node {
  4. public int val;
  5. public List<Node> children;
  6. public Node() {}
  7. public Node(int _val,List<Node> _children) {
  8. val = _val;
  9. children = _children;
  10. }
  11. };
  12. */
  13. class Solution {
  14. public int maxDepth(Node root) {
  15. if(null==root){
  16. return 0;
  17. }
  18. int res=1;
  19. for(Node n:root.children){
  20. res=Math.max(maxDepth2(n)+1,res);
  21. }
  22. return res;
  23. }
  24. }

发表评论

表情:
评论列表 (有 0 条评论,254人围观)

还没有评论,来说两句吧...

相关阅读

    相关 559. N 深度

    给定一个 N 叉树,找到其最大深度。 最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。 N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。