У вас есть узел, который является началом связного списка. Этот список всегда содержит хвост и цикл.
Необходимо найти длину цикла.
В списке, изображённом на картинке, длина цикла 11, а размер хвоста — 3.
Формально: написать функцию, которая получает в качестве параметра узел node, у которого есть свойство node.next (или метод node.getNext())
function loop_size(node) { var history = []; var cur = node; while (true) { for (var i=0;i<history.length;i++) { if (history[i] === cur) return history.length-i; } history.push(cur); cur = cur.next; } }
Комментарии
|
Реклама:
Разработано в студии "Webous" — о проекте — сайта карта —Реклама: