A binary tree is a hierarchical data structure in which every node has at most two children, commonly called:
It is a special form of a tree data structure (a non-linear structure used to represent hierarchical relationships).
Learn JavaScript from the comfort of your home
(Root)
/ \
Left Right The basic storage unit. It contains:
The topmost node in the tree.
A node with no children.
A node with at least one child.
A node connected below another.
A tree within the main tree.
Length of the longest downward path to a leaf.
Distance from the root to that node.
Understanding these variations is important.
Apply to learn software engineering at Codeflare’s Academy
Every node has 0 or 2 children.
A
/ \
B C All levels are filled except possibly the last, and nodes are as far left as possible.
All interior nodes have 2 children and all leaves are at the same level.
For every node, the height of left and right subtrees differ by at most 1.
(Used for fast searching — e.g., AVL, Red-Black trees)
Every parent has only one child, making it behave like a linked list.
A Binary Tree is a general structure.
A Binary Search Tree (BST) is a special binary tree with the rule:
Left subtree values < Node value < Right subtree values This property enables fast search, insertion, deletion (O(log n) average).
To access all nodes, you traverse the tree. There are two main categories:
Example Tree:
1
/ \
2 3 Traversals:
Visit nodes level by level.
Level order → 1, 2, 3, 4, 5... Uses a queue internally.
Depends on tree type
(e.g., BST inserts smaller values left, larger right).
More complex — especially if the node has 2 children.
DFS or BFS.
Used in balancing algorithms.
class Node {
constructor(value) {
this.value = value;
this.left = null;
this.right = null;
}
}
class BinaryTree {
constructor(rootValue) {
this.root = new Node(rootValue);
}
// Pre-order traversal (Root → Left → Right)
preorder(node) {
if (node !== null) {
console.log(node.value);
this.preorder(node.left);
this.preorder(node.right);
}
}
}
const tree = new BinaryTree(1);
tree.root.left = new Node(2);
tree.root.right = new Node(3);
tree.preorder(tree.root);
// Output: 1, 2, 3 Fast searching, inserting, deleting.
Used for priority queues, implemented as complete binary trees.
Used in compilers and interpreters.
For file compression algorithms.
They provide:
Binary trees are one of the most fundamental data structures in computer science — understanding them makes advanced algorithms much easier.
Latest tech news and coding tips.
Download the Codeflare iOS app and learn on the Go 1. What UI and UX…
1. Running Everything as Root One of the biggest beginner errors. Many new users log…
A keylogger is a type of surveillance software or hardware that records every keystroke made…
In JavaScript, it’s commonly used for: Recursive functions (like Fibonacci) Heavy calculations Repeated API/data processing…
For years, responsive design has depended almost entirely on media queries. We ask questions like: “If…
1. What is Task Scheduling? Task scheduling is the process of automatically running commands, scripts,…