Write an efficient algorithm to construct a Cartesian tree from in-order traversal. A Cartesian tree is a binary tree with the heap property: the parent of any node has smaller value than the node itself.
Given a binary tree where each node has one extra pointer next, set next pointer to inorder successor for all nodes in the binary tree.
Given a binary tree, efficiently print all nodes between two given levels in a binary tree. The nodes for any level should be printed from left to right.
Given a binary tree, calculate the difference between sum of all nodes present at odd levels and sum of all nodes present at even level.
Given a binary tree, print its nodes in vertical order. Assume that the left and right child of a node makes 45 degree angle with the parent.
Given a binary tree, write an efficient algorithm to link nodes at the same level in the form of a linked list like structure.
In this post, we will implement Treap Data Structure and perform basic operations like insert, search and delete on it.
Write an efficient algorithm to find preorder traversal of a binary tree from its inorder and postorder sequence without constructing the tree.
Given a binary tree that is only one swap away from becoming a BST, convert the binary tree into BST in single traversal of it.
Given a binary tree, write an efficient algorithm to find maximum sum path between any two leaves in it.
Given a binary tree, write an efficient algorithm to find all nodes present at given distance from any leaf node. We need to find only those nodes that are present in root-to-leaf path for that leaf.
Given a binary tree, count all subtrees in it such that every node in the subtree have same value.