树的宽度
发布日期:2021-07-20 21:52:37 浏览次数:12 分类:技术文章

本文共 905 字,大约阅读时间需要 3 分钟。

import com.lifeibigdata.algorithms.leetcode.TreeNode;import java.util.ArrayDeque;import java.util.Queue;public class TreeWidth {    /**     * 使用队列,层次遍历二叉树。在上一层遍历完成后,下一层的所有节点已经放到队列中,此时队列中的元素个数就是下一层的宽度。     * 以此类推,依次遍历下一层即可求出二叉树的最大宽度     * @param root     * @return     */    static int getTreeWidth(TreeNode  root){        if (root == null) return 0;        Queue
queue = new ArrayDeque
(); int maxWidth = 0; queue.add(root); while (true){ // int len = queue.size(); if (len == 0) break; while (len > 0){ //保证上一层被遍历完毕,所以使用了len变量 TreeNode t = queue.poll(); len--; if (t.left != null) queue.add(t.left); if (t.right != null) queue.add(t.right); } maxWidth = Math.max(maxWidth,queue.size()); } return maxWidth; }}

转载地址:https://blog.csdn.net/lifei128/article/details/82392974 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Eratosthenes 筛选求质数
下一篇:Spark性能优化指南-基础篇

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年09月01日 00时02分53秒