diff --git a/src/index.js b/src/index.js index 4101a36..b60ad9b 100644 --- a/src/index.js +++ b/src/index.js @@ -4,7 +4,27 @@ * @returns {number[][]} */ const findNodesWithZeroAndOneParents = (parentChildPairs) => { + const parentsCount = {} + for (const [parent, child] of parentChildPairs) { + if (parentsCount[child]) + parentsCount[child]++; + else + parentsCount[child] = 1; + + if (!parentsCount[parent]) parentsCount[parent] = 0; + } + + const zeroParents = [], oneParent = []; + + for (let node in parentsCount) { + node = Number(node); + const nodeParents = parentsCount[node]; + if (nodeParents === 0) zeroParents.push(node); + else if (nodeParents === 1) oneParent.push(node); + } + + return [zeroParents, oneParent]; } module.exports = findNodesWithZeroAndOneParents; \ No newline at end of file