JavaScript Program for Rightmost and Leftmost Node of a Binary Tree
Last Updated :
27 Jun, 2024
A binary tree is a fundamental data structure consisting of nodes, each with at most two children: a left child and a right child. The topmost node is called the root. Binary trees support operations such as insertion, deletion, and various traversal methods like in-order, pre-order, and post-order traversal. They find applications in databases, compilers, and algorithms like Huffman coding, though maintaining balance and efficient memory management are crucial considerations.
Input: Given a binary tree. Your task is to print the value of the leftmost and rightmost node at each level of the given binary tree.
Binary TreeOutput: 1 , 2 ,3 , 4 ,6
Explanation: The given values are the values of nodes which are on leftmost and rightmost side of the given binary tree.
Program to find leftmost and rightmost side of Binary Tree
If we observe the given problem carefully we have to print the value of first and last node of each level of the tree. As we are dealing with levels we can use level order traversal for this problem. We will do the level order traversal on the given tree and then print the value of first and last node at each level. We will follow the steps given below to solve this problem.
- Create a Queue and add the root node to it.
- Now create a while loop which will run unless the queue will become empty.
- Store the current size of the queue in a variable.
- Now in the while loop start a for loop which will run from 0 to the current size of the queue.
- Now remove nodes from the queue one by one.
- If i in for loop is 0 or equal to the 1 lesser than size of the queue then print the value of node.
- For each node check whether left and right childe exist and if they exit then insert them into the queue.
Example: The code demonstrates breadth-first traversal of a binary tree to print the leftmost and rightmost nodes at each level.
JavaScript
class Node {
constructor(data) {
this.data = data;
this.left = null;
this.right = null;
}
}
function printLeftmostAndRightmost(root) {
if (root === null) {
return;
}
// Initialize a queue and add the root node in queue
let queue = [];
queue.push(root);
// Loop until queue is empty
while (queue.length > 0) {
let levelSize = queue.length;
// Traverse nodes at the current level
for (let i = 0; i < levelSize; i++) {
let node = queue.shift();
// Print the leftmost node (i == 0) and
rightmost node (i == levelSize - 1)
if (i == 0 || i == levelSize - 1) {
console.log(node.data);
}
// Add left child to the queue if it exists
if (node.left !== null) {
queue.push(node.left);
}
// Add right child to the queue if it exists
if (node.right !== null) {
queue.push(node.right);
}
}
}
}
// Example usage:
let root = new Node(1);
root.left = new Node(2);
root.right = new Node(3);
root.left.left = new Node(4);
root.left.right = new Node(5);
root.right.left = new Node(6);
root.right.right = new Node(7);
printLeftmostAndRightmost(root);
Time complexity: O(N), where n is a no of nodes.
Space complexity: O(N)
Similar Reads
Find the Preorder Successor of a Given Node in a Binary Tree using JavaScript The Preorder successor of a given node is a node that occurs after the given node in the preorder traversal of the binary tree. The preorder traversal is a traversal in which the root node is visited first, then the left child, and then the right child. Example: The pre-order successor of a binary t
2 min read
Java Program for the Preorder Tree Traversal in Binary Tree Preorder traversal is the method used to traverse the tree data structure. In the preorder traversal, the nodes are visited in the order: of root, left subtree, and right subtree. It is called as "preorder" because the root node is visited before its children. This traversal technique is widely used
2 min read
Java Program to Construct a Binary Search Tree Binary Search Tree (BST) is the widely used data structure in computer science, primarily known for the efficient search, insertion, and deletion operations. It is the type of binary tree where each node has at most two children, referred to as the left child and the right child. Binary Search Tree
6 min read
Level Order Traversal of a Binary Tree in Java Binary Tree is a hierarchical data structure in which each node has at most two children and it can referred to as the left child and right child. It is called a tree because it resembles an inverted tree with the root at the top and branches extending downward. In this article, we will learn to per
3 min read
Java Program to Perform the Postorder Tree Traversal The Binary Tree can consist of nodes where each node contains the value and the references to its left and right children. The structure is organized hierarchically with a single root node at the top and each node having at Most Two Children. In this article, we will learn to perform Postorder Tree
3 min read