标签:new lin col png == queue 题解 ima for
给定一个N叉树,找到其最大深度。
最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。
例如,给定一个 3叉树
:
我们应返回其最大深度,3。
说明:
1000
。5000
。我们可以使用BFS(宽度优先搜索)来求解该问题,思路是这样的,我们一层一层的走,每次走完一层就让树的高度加1,最后无路可走的时候,返回树的高度。
这里涉及三个问题:
我们可以用如下图,来展示深度的求解过程。
package tree; import java.util.LinkedList; import java.util.List; import java.util.Queue; public class MaxDepth { public int maxDepth(Node root) { if(root==null) return 0; int height =0; Queue<Node> queue = new LinkedList<Node>(); queue.add(root); int size = queue.size(); while (!queue.isEmpty()) { Node tmp = queue.poll(); for(Node node:tmp.children) if(node!=null) queue.add(node); size--; if(size==0) { size=queue.size(); height++; } } return height; } } // Definition for a Node. class Node { public int val; public List<Node> children; public Node() {} public Node(int _val,List<Node> _children) { val = _val; children = _children; } };
标签:new lin col png == queue 题解 ima for
原文地址:https://www.cnblogs.com/MrSaver/p/9457105.html