preOrder
/** approach
a b c root left right
**/
class Node {
constructor(value, left, right) {
this.value = value;
this.left = left || null;
this.right = right || null;
}
}
function inOrder(node) {
if (node != null) {
inOrder(node.left);
console.log(node.value);
inOrder(node.right);
}
}
function preOrder(node) {
if (node != null) {
console.log(node.value);
preOrder(node.left);
preOrder(node.right);
}
}
function postOrder(node) {
if (node != null) {
//b c a left right root
postOrder(node.left);
postOrder(node.right);
console.log(node.data);
}
}
const root = new Node(5, null, null);
const twoVal = new Node(2);
const sixVal = new Node(6);
root.left = twoVal;
root.right = sixVal;
inOrder(root);
inOrder in Java
class Node {
int data;
Node left;
Node right;
}
public static void inOrder(Node root) {
if(root != null) {
inOrder(root.left);
System.out.print(root.data+" ");
inOrder(root.right);
}
}
class Node {
constructor(value, left, right) {
this.value = value;
this.left = left || null;
this.right = right || null;
}
}
function inOrder(node) {
if (node != null) {
inOrder(node.left);
console.log(node.value);
inOrder(node.right);
}
}
const root = new Node(5, null, null);
const twoVal = new Node(2);
const sixVal = new Node(6);
root.left = twoVal;
root.right = sixVal;
inOrder(root);
/** Output
2
5
6
**/