【重点】【二叉树】662.二叉树最大宽度

发布时间:2024年01月19日

题目

法1:BFS,最佳方法

在这里插入图片描述

class Solution {
    public int widthOfBinaryTree(TreeNode root) {
        int ans = 0;
        Deque<TreeNode> deque = new LinkedList<>();
        deque.offer(new TreeNode(1, root.left, root.right));
        while(!deque.isEmpty()) {
            int count = deque.size(), startIndex = -1, endIndex = -1;
            for (int i = 0; i < count; i++) {
                TreeNode node = deque.pop();
                endIndex = node.val;
                if (startIndex == -1) {
                    startIndex = node.val;
                }
                if (node.left != null) {
                    deque.offerLast(new TreeNode(node.val * 2, node.left.left, node.left.right));
                }
                if (node.right != null) {
                    deque.addLast(new TreeNode(node.val * 2 + 1, node.right.left, node.right.right));
                }
            }
            ans = Math.max(ans, endIndex - startIndex + 1);
        }

        return ans;
    }
}
文章来源:https://blog.csdn.net/Allenlzcoder/article/details/135697242
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。