Question: Write a function to apply left or right rotations to a binary search tree based on the height of the left and right sub-trees of
Write a function to apply left or right rotations to a binary search tree based on the height of the left and right sub-trees of the root. The function should first determine if a binary search tree is height balanced, and if not, rotate the tree until it is. Your algorithm may need to apply a left or right rotation multiple times. You will not need to apply both a left and right rotation to any tree. The function should return the root of the tree.
USE ONLY THIS FUNCTION HEADER:
TreeNode* CheckHeightAndRotate(TreeNode *root);
TreeNode struct:
struct TreeNode { int key; TreeNode *leftChild; TreeNode *rightChild; TreeNode *parent; }; Example:
Input Tree: 15 / \ 8 18 / \ 5 12 / \ 3 6 Expected Output: 8 / \ 5 15 / \ / \ 3 6 12 18
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
