博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] 662. Maximum Width of Binary Tree
阅读量:7038 次
发布时间:2019-06-28

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

Problem

Given a binary tree, write a function to get the maximum width of the given tree. The width of a tree is the maximum width among all levels. The binary tree has the same structure as a full binary tree, but some nodes are null.

The width of one level is defined as the length between the end-nodes (the leftmost and right most non-null nodes in the level, where the null nodes between the end-nodes are also counted into the length calculation.

Example 1:

Input:

1     /   \    3     2   / \     \    5   3     9

Output: 4

Explanation: The maximum width existing in the third level with the length 4 (5,3,null,9).
Example 2:
Input:

1     /      3       / \         5   3

Output: 2

Explanation: The maximum width existing in the third level with the length 2 (5,3).
Example 3:
Input:

1     / \    3   2    /          5

Output: 2

Explanation: The maximum width existing in the second level with the length 2 (3,2).
Example 4:
Input:

1     / \    3   2   /     \    5       9  /         \6           7

Output: 8

Explanation:The maximum width existing in the fourth level with the length 8 (6,null,null,null,null,null,null,7).

Note: Answer will in the range of 32-bit signed integer.

Solution

class Solution {    public int widthOfBinaryTree(TreeNode root) {        if (root == null) return 0;        return dfs(root, 0, 1, new ArrayList
()); } private int dfs(TreeNode root, int level, int id, List
leftnodes) { if (root == null) return 0; if (leftnodes.size() <= level) leftnodes.add(id); int left = dfs(root.left, level+1, id*2, leftnodes); int right = dfs(root.right, level+1, id*2+1, leftnodes); return Math.max(id-leftnodes.get(level)+1, Math.max(left, right)); }}

转载地址:http://rrnal.baihongyu.com/

你可能感兴趣的文章
Java的HashMap和HashTable
查看>>
我的友情链接
查看>>
windows系统之WSUS服务器:更改WSUS更新文件的路径
查看>>
Btrace
查看>>
我的友情链接
查看>>
python抓取豆瓣妹子图片并上传到七牛
查看>>
关于Spring Data redis几种对象序列化的比较
查看>>
windows下批处理设置U盘盘符为U【非PE】
查看>>
Windows系统补丁KB2962872导致InstallShield无法启动(解决方案已更新)
查看>>
#每天问自己个问题#0. 每天问自己个问题
查看>>
制作免费的数字签名证书
查看>>
nagios3.3 监控端安装记录
查看>>
linux下拆分文件split
查看>>
BoCloud博云获得CNCF Kubernetes服务提供商认证
查看>>
WebApp 页面自适应
查看>>
【转自中科蓝鲸】集群NAS与集群文件系统的区别
查看>>
tigase网络核心SockThread详解
查看>>
iotop 查看进程IO情况
查看>>
php获取网站域名 及 SERVER 相关变量
查看>>
如何搭建springboot + mybatis(一)
查看>>