JSFiddle - React, Tailwind, and code Playground
JavaScript
var vertexes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var siblings = {
1: [2,3,4],
2: [5,6],
3: [7],
4: [8,9],
5: [10]
};
function paths(v, s, path, result) {
if (!v) {
if (path.length > 1) {
result.push(path.slice(0));
}
} else {
for (var i = 0; i < v.length; ++i) {
path.push(v[i]);
paths(s[v[i]], s, path, result);
path.pop();
}
}
}
function getPaths(v, s) {
var path = [];
var result = [];
paths(v, s, path, result);
return result;
}
console.log(getPaths(vertexes, siblings));