Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rrichardsonv/a2d779595036c4ec69beda424e56a7fc to your computer and use it in GitHub Desktop.
Save rrichardsonv/a2d779595036c4ec69beda424e56a7fc to your computer and use it in GitHub Desktop.
DepthTraversal.js
const preorderTraverse = (node) => {
if(!node){
return [];
}
return [node.value, ...preorderTraverse(node.left), ...preorderTraverse(node.right)];
};
const inorderTraverse = (node) => {
if(!node){
return [];
}
return [...inorderTraverse(node.left), node.value, ...inorderTraverse(node.right)]
};
const postorderTraverse = (node) => {
if(!node){
return [];
}
return [...postorderTraverse(node.left), ...postorderTraverse(node.right), node.value]
};
/*
describe('tests', function() {
const tree = {
value: 8,
left: {
value: 4,
left: {
value: 3,
left: {
value: 2,
left: null,
right: null
},
right: null
},
right: {
value: 5,
left: null,
right: {
value: 7,
left: {
value: 6,
left: null,
right: null
}
}
}
},
right: {
value: 12,
left: {
value: 10,
left: {
value: 9,
left: null,
right: null
},
right: {
value: 11,
left: null,
right: null
}
}
}
};
it('preorderTraverse', () => {
expect(preorderTraverse(tree, [])).toEqual([8, 4, 3, 2, 5, 7, 6, 12, 10, 9, 11]);
});
it('inorderTraverse', () => {
expect(inorderTraverse(tree, [])).toEqual([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]);
});
it('postorderTraverse', () => {
expect(postorderTraverse(tree, [])).toEqual([2, 3, 6, 7, 5, 4, 9, 11, 10, 12, 8]);
});
});
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment