博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Algorithm] Tree Width with Level Width
阅读量:4983 次
发布时间:2019-06-12

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

// --- Directions// Given the root node of a tree, return// an array where each element is the width// of the tree at each level.// --- Example// Given://     0//   / |  \// 1   2   3// |       |// 4       5// Answer: [1, 3, 2]

 

function levelWidth(root) {  let counts = [0];  let levels = [root, "$end$"];  // [1, 3, 2]  // ["e"]  while (levels.length > 1) {    const current = levels.shift();    if (current === "$end$") {      counts[counts.length] = 0;      levels.push("$end$");    } else {      const { children } = current;      for (let node of children) {        levels.push(node);      }      counts[counts.length - 1]++;    }  }  return counts;}module.exports = levelWidth;

 

Test:

const Node = require('./node');const levelWidth = require('./index');test('levelWidth is a function', () => {  expect(typeof levelWidth).toEqual('function');});test('levelWidth returns number of nodes at widest point', () => {  const root = new Node(0);  root.add(1);  root.add(2);  root.add(3);  root.children[0].add(4);  root.children[2].add(5);  expect(levelWidth(root)).toEqual([1, 3, 2]);});test('levelWidth returns number of nodes at widest point', () => {  const root = new Node(0);  root.add(1);  root.children[0].add(2);  root.children[0].add(3);  root.children[0].children[0].add(4);  expect(levelWidth(root)).toEqual([1, 1, 2, 1]);});

 

转载于:https://www.cnblogs.com/Answer1215/p/11336949.html

你可能感兴趣的文章
Android studio使用git-android学习之旅(79)
查看>>
eclipse中去掉Js/javsscript报错信息
查看>>
网络中,FIFO、LRU、OPT这三种置换算法的缺页次数
查看>>
随机森林算法参数调优
查看>>
read命令读取用户输入
查看>>
Mysql编写定时任务事件
查看>>
路由器/交换机/集线器的区别收集(转)
查看>>
今日头条面试题汇总
查看>>
hdu 1305 Immediate Decodability
查看>>
基本数据类型
查看>>
laravel 配置sql日志
查看>>
基于注意力机制的群组推荐算法
查看>>
Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭...
查看>>
linux更改shell
查看>>
win7 64位系统 pl/sql 无法解析指定的连接标识符解决办法
查看>>
linux -- RPM 和 YUM
查看>>
给列表单元格加背景色
查看>>
knockoutjs 静动态数据、行为绑定,计算属性及Sync同步更新 Value值更新事件控制...
查看>>
关于.NET编程中各种事务的实现
查看>>
spring Boot加载bean
查看>>