2022-04-17 Daily-Challenge
Today I have done leetcode's April LeetCoding Challenge with cpp
.
April LeetCoding Challenge 17
Description
Increasing Order Search Tree
Given the root
of a binary search tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root of the tree, and every node has no left child and only one right child.
Example 1:
Input: root = [5,3,6,2,4,null,8,1,null,null,null,7,9]
Output: [1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]
Example 2:
Input: root = [5,1,7]
Output: [1,null,5,null,7]
Constraints:
- The number of nodes in the given tree will be in the range
[1, 100]
. 0 <= Node.val <= 1000
Solution
class Solution {
void traversal(TreeNode *&newCur, TreeNode *cur) {
if(!cur) return;
traversal(newCur, cur->left);
newCur->right = new TreeNode(cur->val);
newCur = newCur->right;
traversal(newCur, cur->right);
}
public:
TreeNode* increasingBST(TreeNode* root) {
TreeNode *newRoot = new TreeNode();
TreeNode *tmp = newRoot;
traversal(tmp, root);
return newRoot->right;
}
};
// Accepted
// 37/37 cases passed (3 ms)
// Your runtime beats 65.44 % of cpp submissions
// Your memory usage beats 19.7 % of cpp submissions (8 MB)