====== Tree ====== export function inorderTraversal( root: node, fn: (n: T) => boolean, newTree?: node ) { newTree = { value: root.value, children: [], }; console.log(root.value); if (root.children) { for (const n of root.children) { if (fn(root.value)) { if (fn(n.value)) { newTree.children!.push(inorderTraversal(n, fn, newTree)); } else { for (const nn of n.children) { newTree.children!.push(inorderTraversal(nn, fn, newTree)); } } } } } return newTree; }