How to Determine 2 Binary Trees are Identical, Using Javascript

Ashutosh Sarangi - Aug 21 - - Dev Community

Introduction

Here identical means both structure and values are in the same position.

To achieve this we need to use DFS algorithm so it will check depth as well.

This can't be achieved using BFS Algo.

So here I am using In Order Traversal to get the result.

class Node {
    constructor(data)
    {
        this.left = null;
        this.right = null;
        this.data = data;
    }
}

let root1, root2;

// left root right
const checkIdentical = (binaryTree1, binaryTree2) => {
    let tree = '';
    const helper = (root) => {
        if (root == null) {
            return tree;
        }
        helper(root.left);
        tree += root.data;
        helper(root.right);

        return tree;
    };

    const tree1 = helper(binaryTree1);
    tree = '';
    const tree2 = helper(binaryTree2);
    if (tree1 === tree2) {
        console.log('Both are identical');
    } else {
        console.log('Not Identical');
    }

}

root1 = new Node(1);
root1.left = new Node(2);
root1.right = new Node(3);
root1.left.left = new Node(4);
root1.left.right = new Node(5);

root2 = new Node(1);
root2.left = new Node(2);
root2.right = new Node(3);
root2.left.left = new Node(4);
root2.left.right = new Node(5);
checkIdentical(root1, root2);

/*
Both are identical

*/
Enter fullscreen mode Exit fullscreen mode

Feel free to reach out to me if you have any concerns

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player