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.
TreeNode* CheckHeightAndRotate(TreeNode *root);
some test cases:


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. Tree Node CheckHeightAndRotate(TreeNode *root); TreeNode struct: struct TreeNode int key; TreeNode *left Child; TreeNode right child TreeNode parent; Example: Input Tree 15 18 5 12 3 6 Expected output: 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
