class TreeNode {
constructor(value) {
this.val = value;
this.left = null;
this.right = null;
}
}
const root = new TreeNode('A');
const nodeB = new TreeNode('B');
const nodeC = new TreeNode('C');
const nodeD = new TreeNode('D');
const nodeE = new TreeNode('E');
const nodeF = new TreeNode('F');
root.left = nodeB;
root.right = nodeC;
nodeB.left = nodeD;
nodeB.right = nodeE;
nodeC.right = nodeF;
function preorderTraversal(root) {
if (root === null) return;
console.log(root.val);
preorderTraversal(root.left);
preorderTraversal(root.right);
}
function inorderTraversal(root) {
if (root === null) return;
inorderTraversal(root.left);
console.log(root.val);
inorderTraversal(root.right);
}
function postorderTraversal(root) {
if (root === null) return;
postorderTraversal(root.left);
postorderTraversal(root.right);
console.log(root.val);
}
function levelOrderTraversal(root) {
if (root === null) return;
const queue = [root];
while (queue.length > 0) {
const node = queue.shift();
console.log(node.val);
if (node.left) queue.push(node.left);
if (node.right) queue.push(node.right);
}
}
console.log('Preorder Traversal:');
preorderTraversal(root);
console.log('Inorder Traversal:');
inorderTraversal(root);
console.log('Postorder Traversal:');
postorderTraversal(root);
console.log('Level Order Traversal:');
levelOrderTraversal(root);
console