LeetCode Solutions
998. Maximum Binary Tree II
Time: $O(n)$ Space: $O(h)$
class Solution {
public:
TreeNode* insertIntoMaxTree(TreeNode* root, int val) {
if (root == nullptr)
return new TreeNode(val);
if (root->val < val)
return new TreeNode(val, root, nullptr);
root->right = insertIntoMaxTree(root->right, val);
return root;
}
};
class Solution {
public TreeNode insertIntoMaxTree(TreeNode root, int val) {
if (root == null)
return new TreeNode(val);
if (root.val < val)
return new TreeNode(val, root, null);
root.right = insertIntoMaxTree(root.right, val);
return root;
}
}
class Solution:
def insertIntoMaxTree(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
if not root:
return TreeNode(val)
if root.val < val:
return TreeNode(val, root, None)
root.right = self.insertIntoMaxTree(root.right, val)
return root